HDOJ 1003 Max Sum参考程序
来源:互联网 发布:斗战胜佛工艺品知乎 编辑:程序博客网 时间:2024/05/17 23:30
//最大子段和#include<iostream>#include<algorithm>#include<vector>using namespace std;vector <int> v; //v[i]为第i(从0开始)个元素//状态f(i):以v[i]为最后一个元素时的最大和int dp(int &start, int &end){ int sum=0,max=0,curStart=0; for(int i=0;i<v.size();i++) { sum+=v[i]; if (sum<0) //不能包含v[i] { sum=0; curStart=i+1; } else if (sum>max) //包含v[i]且最大和比原来的大 { max=sum; start=curStart; end=i; } } return max;} void run(int now) { int n; cin>>n; v.resize(n); //重定义向量的大小 int cnt=0; for(int i=0;i<n;i++) { cin>>v[i]; if (v[i]<=0) cnt++; //统计非正数 } if (now>1) cout << endl; //用now控制每组测试之间留一个空行 cout << "Case " << now << ":\n"; int start,end,result; if (cnt==n) //全为非正的整数 { vector <int>::iterator it=max_element(v.begin(),v.end()); //求出最大值的指针 start=end=it-v.begin(); result=*it; //取it所指单元的内容 } else result=dp(start,end); cout << result << " "<< start+1 << " "<< end+1 << endl;}int main(){ int total; cin>>total; for(int now=1; now<=total; now++) run(now); return 0;}
0 0
- HDOJ 1003 Max Sum参考程序
- 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
- G - sorry 没有北门
- 使用Git+msysGit上传项目
- UEFI BIOS模式下Windows系统启动过程以及引导文件修复方法
- Java基础类库简介及lang包介绍
- 前后台切换会调用哪些方法
- HDOJ 1003 Max Sum参考程序
- Eclipse DDMS检测不到设备问题及解决方法
- 九度OJ 1357:疯狂地Jobdu序列 (数字特性)
- iBatis iterate标签
- UIInterfaceOrientation 设备旋转的用法 (实例) 和 IOS6屏幕旋转详解
- 一个编译静态库的make脚本
- LightOJ 1348 Aladdin and the Return Journey(树链剖分+线段树)
- Java网络编程示例
- 黑马程序员——OC学习——Protocol和代理设计模式