http://soj.me/show_problem.php?pid=1563
明显的水题,几分钟敲出来;
测试下样例,居然发现答案不一样。。
鉴于上次乌龟棋数组开太小,数据是long的,虽然目测这题数据还行,还是改成long了。。int 我估计也行。。
目测纠结一番,不知道哪里错了。
输出每次 cur[][] 的变化,更加郁闷,有最大值32啊,为什么我输出26呢。。
输出答案,更加郁闷;
我就不信是人品技术问题。。
再瞄~~
26是最后一行的。。。
WA!!我倒,要输出 ans 的,居然打成cur[][];
AC了。。。
大清早的拿道题清醒下。居然发生这种事情,T~T...。
06.#include<iostream>07.#include<cstring>08.using namespace std;09.long a[1001][1001],cur[502][502];10. 11.long max(long a,long b,long c)12.{13.long t = a>b?a:b;14.return t>c?t:c;15.}16.int main()17.{18.int col,row;19.cin>>row>>col;20.for(int i = 1 ; i <= row; i++)21.for(int j = 1 ; j <= col ; j++)22.cin>>a[i][j];23. 24.memset(cur,0,sizeof(int));25.for(int i=1;i<=col;i++)26.cur[1][i] = a[1][i];27. 28.for(int i=1;i<=row;i++)29.{30.for(int j=1;j<=col;j++)31.cur[i][j]=max(cur[i-1][j],cur[i-1][j-1],cur[i-1][j+1] )+a[i][j]; 32.// cout << i << " i j" <<j<<" "<<cur[i][j]<<endl;33.}34. 35.long ans = 0 ;36.for(int i=1;i<=col;i++)37.{ if(cur[row][i]>ans)38.ans = cur[row][i]; // cout <<"@"<< ans<<endl;39.} 40.cout <<ans<<endl;41.return 0;42.}