hdoj1003注意在寻找最优解对应的时候寻找的顺序
来源:互联网 发布:方维o2o上门服务 源码 编辑:程序博客网 时间:2024/06/03 07:38
//提取信息起始位置,终止位置,最大和//发现数组较大可以将保存信息改造只存储终止位置//那么dp[i] = max(a[i],dp[i-1]+a[i])//主意要用dp[i-1]<0判断如果小于0那么肯定不用算了这题最先算的是从前到后的//否则直接比较大小的话dp[i]就会出现I,i在前面而不是1-i在前面//46MS 2792K #include <iostream>#include <algorithm>using namespace std;#define MAX_N 100005static int dp[MAX_N];static int top[MAX_N];//保存初始位置static int a[MAX_N];static int n;static void DP(){for (int i=0;i<n;++i) dp[i] = -9999;memset(top,0,sizeof(top));dp[0] = a[0];top[0] = 0;int startpos = 0;int endpos = 0;int ans = a[0];//主意是从-1000开始算的for (int i=1;i<n;++i){if (dp[i-1]<0){dp[i] = a[i];top[i] = i;}else{dp[i] = dp[i-1]+a[i];top[i] = top[i-1];}if (ans<dp[i]){ans = dp[i];startpos = top[i];endpos = i;}}printf("%d %d %d\n",ans,startpos+1,endpos+1);}int main(){int T;scanf("%d",&T);for (int t=1;t<=T;++t){scanf("%d",&n);for (int i=0;i<n;++i) scanf("%d",&a[i]);printf("Case %d:\n",t);DP();if (t==T) break;else printf("\n");}return 0;}
0 0
- hdoj1003注意在寻找最优解对应的时候寻找的顺序
- JVM寻找Class的顺序
- javascript在netscape浏览器中寻找控件的注意点
- javascript在netscape浏览器中寻找控件的注意点
- Linux vi 寻找“{”对应的右括号“}”
- 优化算法-寻找最优解
- 寻找“在路上”的感觉
- 系统寻找XML解析器的顺序
- Java虚拟机(JVM)寻找Class的顺序
- Eclipse寻找JVM(JRE)的顺序
- eclipse启动时寻找jre的顺序
- eclipse启动时寻找jre的顺序
- CALayer寻找Action object的顺序
- PYTHON中寻找MODULE的顺序
- Linux--shell寻找命令的顺序
- 同时寻找最大数和最小数的最优算法
- 同时寻找最大数和最小数的最优算法
- 在每一个时光寻找,寻找适合我的孤岛。
- UVA10900 So you want to be a 2n-aire?(概率dp)
- 在阿里云centos6.5系统上用docker搭建php环境的失败过程
- 音视频播放器源码
- nginx配置失败,卸载后重装出问题 awk: cannot open /etc/nginx/nginx.conf (No such file or directory)
- HDU - 3117 Fibonacci Numbers 矩阵快速幂 + 取大数前4位
- hdoj1003注意在寻找最优解对应的时候寻找的顺序
- HDOJ 1004 Let the Balloon Rise
- CSS页面布局
- 最短路径—Dijkstra算法和Floyd算法
- 一、Java基础知识总结
- nokey属性(输出没有名称的数组)---精通android、IOS App应用服务程序开发
- html5第一个页面。登录加倒计时
- Guava ---- Sets
- A+B 吐槽