hdu 1003 MAX SUM(最大连续子序列和)
2014-04-30 22:20
369 查看
状态转移方程:sum[i] = max{sum[i-1]+a[i],a[i]}.
#include <stdio.h> int main() { int n, i, t, k, cc, sum; int a,b, A, B; scanf("%d", &t); for(cc=1; cc<=t; cc++) { scanf("%d", &n); int max=-1001; sum=-11001; for(i=1; i<=n; i++) { scanf("%d", &k); if(sum+k<k) sum=k, a=b=i; else { sum+=k;++b; } if(sum>max) { max=sum; A=a;B=b; } } printf("Case %d:\n", cc); printf("%d %d %d\n", max, A,B); if(cc<t) printf("\n"); } return 0; }
相关文章推荐
- Java之字符串
- 设计流程 工作流
- 一个千兆电口和自协商的问题
- acegi security实践教程—访问系统中资源前必须登陆系统
- Optimal Parking
- 哈希算法原理及碰撞分析
- workflow 工作流
- 学习之路四十一丶简论重构
- ASP.NET MVC4中用 BundleCollection使用问题手记
- HDU1042 求N!
- poj 1321棋盘问题
- ORA-15183: ASMLIB initialization error [driver/agent not installed]
- 访问调度控制 时间控件
- boost库应用(一)
- Largest Rectangle in Histogram
- 如何:实现一个视图项目
- 正则表达式-python-无捕获分组与分支选择
- 简历,
- 用户、用户组、角色的区别和联系
- Codeforces 425A Sereja and Swaps(暴力+贪心)