HDOJ -- 1003 Max Sum
来源:互联网 发布:剪裁证件照片的软件 编辑:程序博客网 时间:2024/06/14 06:59
解题报告:在求一个数列的子序列的最大和时,我们需要从第一个非负数开始(temp),逐渐加上后面的数存在sum中,如果sum也为负数,则就再次从下一个非负数开始累加。每次得到的和与max比较,用max记录最大和。据说这用到了DP的思想。。。
#include<cstdio>int main(){int t,n,cnt=1;scanf("%d",&t);while(t--){int a,max;//子序列最大和 int temp;//暂存初始位置 int sum;//从temp开始到n的序列和int start,end;//记录初末位置 max=-1000;temp=1;sum=0;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a);sum+=a; if(sum>max){//如果sum大于max,更新相应的值 max=sum;start=temp;end=i;}if(sum<0){sum=0;//如果前面的数相加的和是负的,则sum清零,从下一个数开始 temp=i+1;}}printf("Case %d:\n%d %d %d\n",cnt++,max,start,end);if(t!=0)printf("\n");}return 0;}
0 0
- HDOJ 1003 Max Sum
- HDOJ 1003 Max Sum
- hdoj 1003 Max Sum
- HDOJ 1003 Max Sum
- hdoj 1003Max Sum
- HDOJ 1003 Max Sum
- HDOJ 1003 Max Sum
- HDOJ--1003Max Sum
- hdoj 1003 Max Sum
- HDOJ 1003 Max Sum
- HDOJ 1003 Max Sum
- HDOJ 1003 Max Sum
- HDOJ 1003 Max Sum
- HDOJ 1003 Max Sum
- hdoj 1003 Max Sum
- HDOJ Max Sum 1003
- 【HDOJ 1003】 Max Sum
- HDOJ 1003 ( Max Sum )
- redhat安装VMwaretool方法
- MAX DotNet 透明界面效果代码实例 转自CG++原帖
- String,StringBuffer,StringBuilder
- Node.js实战关于cookie-parser中间件
- 关于NGINX
- HDOJ -- 1003 Max Sum
- iOS开发UI篇—CAlayer层的属性
- vim
- HDU 1260 Tickets
- Android中的数据库操作
- Linux下常见的系统命令小结(转)
- 【剑指offer】矩形覆盖问题
- PHP中出现BOM字符\ufeff,PHP去掉诡异的BOM \ufeff
- maven自定义骨架的过程,已经使用详解