NYOJ234吃土豆
2014-04-25 14:41
323 查看
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=234
题意:
对于行和列来说是一样的 不能取i-1,i+1行(列)
因此对于列来说map[i][j]+=max(map[i][j-2],max[i][j-3]);
对于行来讲dp[i]=max(dp[i-2],dp[i-3])+max(map[i][m+1],map[i][m+2]);(每行有m列);
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int dp[510];
int map[510][510];
int main()
{
int n,m;
while(cin>>n>>m)
{
memset(dp,0,sizeof(dp));
memset(map,0,sizeof(map));
for(int i=3;i<n+3;i++)
{
for(int j=3;j<m+3;j++)
{
cin>>map[i][j];
map[i][j]+=max(map[i][j-2],map[i][j-3]);
}
}
for(int i = 3; i < n+3; i++)
dp[i] = max(dp[i-2], dp[i-3]) + max(map[i][m+1], map[i][m+2]);
cout<<dp[n+2]<<endl;
}
return 0;
}
题意:
对于行和列来说是一样的 不能取i-1,i+1行(列)
因此对于列来说map[i][j]+=max(map[i][j-2],max[i][j-3]);
对于行来讲dp[i]=max(dp[i-2],dp[i-3])+max(map[i][m+1],map[i][m+2]);(每行有m列);
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int dp[510];
int map[510][510];
int main()
{
int n,m;
while(cin>>n>>m)
{
memset(dp,0,sizeof(dp));
memset(map,0,sizeof(map));
for(int i=3;i<n+3;i++)
{
for(int j=3;j<m+3;j++)
{
cin>>map[i][j];
map[i][j]+=max(map[i][j-2],map[i][j-3]);
}
}
for(int i = 3; i < n+3; i++)
dp[i] = max(dp[i-2], dp[i-3]) + max(map[i][m+1], map[i][m+2]);
cout<<dp[n+2]<<endl;
}
return 0;
}
相关文章推荐
- nyoj 234 吃土豆
- NYOJ_234_吃土豆
- NYOJ-234-DP(吃土豆)
- nyoj-234-吃土豆(动态规划)
- NYOJ 234 吃土豆
- 吃土豆_nyoj_234(动态规划).java
- nyoj 吃土豆 234 (双层DP)
- NYOJ234吃土豆(双层动态规划)
- nyoj 234 吃土豆
- NYOJ234-吃土豆(双层DP)
- NYOJ 234 吃土豆
- Nyoj 234 吃土豆
- hdu-Beans(动态规划,nyoj-234-吃土豆)
- nyoj 234 吃土豆
- NYOJ 234 吃土豆(基础dp)
- nyoj234 吃土豆 01背包
- nyoj-动态规划-234-吃土豆-201308131021
- NYOJ 题目234 吃土豆
- NYOJ-234 吃土豆
- 题目234 吃土豆