ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[Acwing] 275. 传纸条 双向DP ||数字三角形模型

2021-11-07 10:58:22  阅读:188  来源: 互联网

标签:i1 max i2 j1 j2 int 275 DP Acwing


前言

差不多一样的题
传送门 :

思路

虽然本题是从两个角跑出来

但是其实想想 和 从左上角跑出来一样的

因此这题是可以抽象为 方格取数模型

所以在原方程不变的情况下,我们做一些边界处理就行

还有就是 n 和 m 竟然是倒过来的 吐血。。

CODE

void solve()
{
    cin>>m>>n;
    
    
    int a,b,c;
  //  while(cin>>a>>b>>c,a||b||c) w[a][b] = c;
	
	for(int i=1;i<=m;i++)
		for(int j=1;j<=n;j++)
		cin>>w[i][j];
		
    for(int k=2; k<=n+m; k++)
    {
        for(int i1=1; i1<=m; i1++)
            for(int i2 =1; i2<=m; i2++)
            {
                int j1 = k-i1;
                int j2 = k-i2;

				if(j1 > 0  && j1<=n && j2>0 &&j2<=n)
				{
                 int t = w[i1][j1];
                 if(i1!=i2) t+=w[i2][j2];

                 int &x = f[k][i1][i2];

                 x = max(x,f[k-1][i1-1][i2-1]+t);
                 x = max(x,f[k-1][i1-1][i2]+t);
                 x = max(x,f[k-1][i1][i2-1]+t);
                 x = max(x,f[k-1][i1][i2]+t);
                }
            }
    }
    cout<<f[n+m][m][m]<<endl;

}

标签:i1,max,i2,j1,j2,int,275,DP,Acwing
来源: https://blog.csdn.net/qq_34364611/article/details/121188822

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有