HDU_1003
来源:互联网 发布:vb程序设计培训班 编辑:程序博客网 时间:2024/06/08 00:47
#include<iostream>#include<cstring>#include<cstdio>using namespace std;const int _MIN = -(1<<30);const int MAXN = 100000+5;int a[MAXN];int _biao[MAXN];int d[MAXN];int dp(int i, int flag){int& ans = d[i];if(ans > 0) return ans;ans = a[i]; if(i==0) _biao[0] = 0;int m; if((i-1)>=0) _biao[flag] = _biao[i-1];//假设 (dp(i-1, flag)+a[i])>ans 儿子的最优起点传给父亲 if((i-1)>=0 && (m=(dp(i-1, flag)+a[i]))>=ans){ //(dp(i-1, flag)+a[i]))与ans的关系注意是大于或者等于 ans = m;}else {_biao[flag] = i;//假设 (dp(i-1, flag)+a[i])<ans }return ans;}int main(){int n, Case = 0;cin >> n; while(n--){int len, _maxbiao, _minbiao;cin >> len;for(int i = 0; i < len; i++) {scanf("%d",&a[i]);}memset(d, 0, sizeof(d));memset(_biao, 0, sizeof(_biao));cout << "Case " << ++Case << ":" << endl;int _max = _MIN;int d;for(int i = 0; i < len; i++) {if((d = dp(i,i))>_max){_max = d;_maxbiao = i;_minbiao = _biao[i];}}cout << _max << " " << _minbiao+1 << " " << _maxbiao+1 << endl;if(n) cout << endl;//之前没有这一句 一直PE!!!OJ对格式的要求真心是严格!!严格!! }return 0;}
0 0
- HDU_1003
- HDU_1003
- hdu_1003
- HDU_1003 Max Sum
- HDU_1003 MAX SUM
- HDU_1003 Max Sum
- HDU_1003 Max Sum
- MFC work
- Java中的保留字
- android直接读取数据库文件
- python内置对象类型
- lua遇到的错误
- HDU_1003
- Codeforces Round #332 (Div. 2) E. Sandy and Nuts
- linux不知道的一些事儿
- 10大基础实用算法及其讲解
- 黑马程序员--java笔记12--IO流
- APIX_身份证图像识别技术(附代码)
- 机器学习相关——SVD分解
- 几种序列化协议(protobuf,xstream,jackjson,jdk,hessian)相关数据对比
- apache+php+mysql常见集成环境安装包