online_judge_1139
2015-12-23 10:17
316 查看
#include <iostream> #include <cstring> using namespace std; int main() { int a[101][101],dp[101][101],tmp[101][101]; int i,j,k,n,t,ans; while(cin>>n) { ans = -300; for(i=1; i<=n; ++i) { for(j=1; j<=n; ++j) { cin>>a[i][j]; if(ans < a[i][j]) ans = a[i][j]; } } if(ans <= 0) { cout<<ans<<endl; continue; } memset(dp, 0, sizeof(dp)); memset(tmp, 0, sizeof(tmp)); for(i=1; i<=n; ++i) { for(j=1; j<=n; ++j) { t = 0; for(k=j; k<=n; ++k) { t += a[i][k]; if(t < 0) { if(tmp[j][k] + t > 0) { tmp[j][k] = tmp[j][k] + t; } else { tmp[j][k] = 0; } } else { tmp[j][k] += t; if(dp[j][k] < tmp[j][k]) dp[j][k] = tmp[j][k]; } } } } ans = -300; for(j=1; j<=n; ++j) { for(k=j; k<=n; ++k) { if(ans < dp[j][k]) ans = dp[j][k]; } } cout<<ans<<endl; } return 0; }
很好的一道题目,最大子序列和这个考察的很到位……
同时要注意矩阵中的值都为负数的情形……
相关文章推荐
- AngularJS权威教程 第6章 表达式expression
- stl算法copy
- Maximo 密码加密传送
- oracle 对应的JDBC驱动 版本
- Winform webBrowser 不跳转网页
- mysql笔记之主从切换
- C# 操作XML
- Java ffmpeg实现视频转换
- 敏捷开发之Scrum扫盲篇
- dc学习之基于Android Studio的jni开发总结
- ARM平台移植 json-c-0.12
- BIOS启动报警声全集
- 继承
- mysql笔记之集群
- 【Java】聊聊常用的MD5的使用
- Console命令详解,让调试js代码变得更简单
- equals与==的区别
- 性能测试技术提高的门槛
- jQuery教程(19)-jquery ajax操作之序列化表单
- 28家中国域名商保有量统计:有孚网络升至第十五