sicily 1563 水水的DP

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. }

转载于:https://www.cnblogs.com/tinyork/p/3440958.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值