杭电1003 maxsum--解题报告
来源:互联网 发布:java线程死锁是什么 编辑:程序博客网 时间:2024/05/24 04:32
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1003
最常用的办法就是双重循环,但是绝对会超时,暴力方法在ACM上基本上都行不通。刚开始我也没有想到好的办法,后来参考网上的资料
写出下面的代码,他用的动态规划的思想,从后往前的分析:
首先我们先把整个数列都是负数的情况放到一边,另作讨论
ps:现在想不起来了,有空再补
先上代码:
#include<stdio.h>#define MinInt -272100120int main(){ int n; scanf("%d",&n); for(int i=0;i<n;i++) { int k,num,sum=0,max=MinInt,start=1,end=1,_s=1; int MaxNum=MinInt,x=0; bool flag=true; scanf("%d",&k); for(int j=0;j<k;j++) { scanf("%d",&num); if(num>MaxNum) { MaxNum=num; x=j+1; } sum+=num; if(sum>0&&sum>max) { flag=false; max=sum; start=_s; end=j+1; } if(sum<0) { sum=0; _s=j+2; } } if(flag) { max=MaxNum; start=x; end=x; } printf("Case %d:\n%d %d %d\n",i+1,max,start,end); if((n-1)!=i) printf("\n"); }}
- 杭电1003 maxsum--解题报告
- 杭电1003 MaxSum动态规划
- 杭电HDOJ 1003 解题报告
- 杭电1008解题报告
- 杭电1014解题报告
- 杭电1160解题报告
- 杭电1176解题报告
- 杭电2059解题报告
- 杭电HDOJ1024 解题报告
- 杭电2028解题报告
- 杭电3342解题报告
- 杭电Robberies解题报告
- 杭电1061 解题报告
- 杭电ACM1800解题报告
- 杭电1045解题报告
- 杭电1050解题报告
- 杭电2037解题报告
- 杭电1051解题报告
- PostgreSQL学习手册(常用数据类型)
- linux重定向
- ganglia学习小记
- signal(SIGPIPE, SIG_IGN)
- oracle rowid存贮类型
- 杭电1003 maxsum--解题报告
- git同步远程分支
- HTTP请求与响应(转载)
- 正则表达式
- 使用HttpClinet保持session一致
- hibernate4.1.7+ehcache2.4.3配置二级缓存
- IOS笔记之 视图圆角
- PLSQL developer 连接不上64位Oracle 的解决方法
- Codeforces Round #185 (Div. 2)--A,B