NYOJ 234 吃土豆
2013-04-22 13:12
288 查看
吃土豆
时间限制:1000ms|内存限制:65535KB难度:4
描述Bean-eatingisaninterestinggame,everyoneownsanM*Nmatrix,whichisfilledwithdifferentqualitiesbeans.Meantime,thereisonlyonebeaninany1*1grid.Nowyouwanttoeatthebeansandcollectthequalities,buteveryonemustobeybythefollowingrules:ifyoueatthebeanatthecoordinate(x,y),youcan’teatthebeansanywayatthecoordinateslisted(ifexiting):(x,y-1),(x,y+1),andthebothrowswhoseabscissasarex-1andx+1.
Now,howmuchqualitiescanyoueatandthenget?
输入Thereareafewcases.Ineachcase,therearetwointegerM(rownumber)andN(columnnumber).ThenextMlineseachcontainNintegers,representingthequalitiesofthebeans.Wecanmakesurethatthequalityofbeanisn'tbeyond1000,and1<=M,N<=500.输出Foreachcase,youjustoutputtheMAXqualitiesyoucaneatandthenget.样例输入
46 11075139 784816224 1409341610 1122033396
样例输出
242
//开始没考虑全面只考虑了一个dp,后来发现原来横着的最大和也是一个DP,题中用value[]数组来存放了………………
1#include<iostream>
2#include<memory.h>
3usingnamespacestd;
4#definemax(a,b)a>b?a:b
5intdp[505],value[505];
6intmain()
7{
8//freopen("in.txt","r",stdin);
9intm,n,i,j,x,y;
while(cin>>m>>n)
{
memset(dp,0,sizeof(dp));
memset(value,0,sizeof(value));
for(i=0;i<m;++i)
{
x=y=0;
for(j=0;j<n;++j)
{
cin>>value[j];
if(j==1)value[1]=max(value[0],value[1]);
if(j>1)
value[j]=max(value[j-1],value[j]+value[j-2]);
}
dp[i]=value[n-1];
}
dp[1]=max(dp[0],dp[1]);
for(i=2;i<m;++i)
dp[i]=max(dp[i-1],dp[i]+dp[i-2]);
cout<<dp[m-1]<<endl;
}
return0;
}
相关文章推荐
- NYOJ234吃土豆(双层动态规划)
- nyoj 234 吃土豆
- NYOJ234吃土豆
- NYOJ234-吃土豆(双层DP)
- Nyoj 234 吃土豆
- hdu-Beans(动态规划,nyoj-234-吃土豆)
- nyoj 234 吃土豆
- nyoj234 吃土豆 01背包
- nyoj-动态规划-234-吃土豆-201308131021
- NYOJ 234 吃土豆(基础dp)
- NYOJ 题目234 吃土豆
- NYOJ-234 吃土豆
- NYOJ_234_吃土豆
- NYOJ-234-DP(吃土豆)
- nyoj 234 吃土豆
- nyoj-234-吃土豆(动态规划)
- 吃土豆_nyoj_234(动态规划).java
- NYOJ 234 吃土豆
- nyoj 吃土豆 234 (双层DP)
- 题目234 吃土豆