acm学习总结(9)
这几天我在把vjudge上之前没有做出来的题目再从新在看一遍实在是做不出来就看一下别人的题解,总之弄懂这个题到底是用了什么状态转移方程;
- 天上掉馅饼状态转移方程
for(i=time;i>=0;i–)
{
for(j=0;j<=10;j++)
{
if(j>=1&&j<=9)f[i][j]=max(f[i+1][j-1],f[i+1][j],f[i+1][j+1])+a[i][j];
else if(j0)f[i][j]=max1(f[i+1][j],f[i+1][j+1])+a[i][j];
else if(j10)f[i][j]=max1(f[i+1][j-1],f[i+1][j])+a[i][j];
}
} - 最大子段和
for(i=0;i<n;i++)
{
sum+=a[i];
if(sum>summax)
{
summax=sum;
}
if(sum<0)
{
sum=0;
}
}
还有一些题目正在研究,终究会学会使用dp;
学习心得:总是感觉我对acm不是很上心,课后那个课件也不是经常看,所以从课上的长进也不是很多。我总感觉只是在课上学习,即使是当时会了什么意思,但是我事后在看的时候却不明白他为什么要这么做,比如说状态转移方程特别是二维数组他的下标到底是替代的是什么含义,我觉得这个还是要多看类似的题目,哎还是多刷题目吧。看着同龄人都比自己强心中不免有一种愧疚感,为什么自己不能做人中豪杰。上天会把机会留给有准备的人这是个定理啊!