hdu 1003
来源:互联网 发布:肖俊光实况数据 编辑:程序博客网 时间:2024/06/16 08:56
一道dp。
思路:对于序列中的一个点i,有两种考量
一是继承前面的序列和
二是自己开始
最关键的点在于,之前的序列和是否大于或等于0。若是小于零,对于点i来说,之前的完全没有用。所以:dp[i] = max(dp[i -1] + num[i[, num[i])。
#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn = 100000 + 5;int num[maxn];int dp[maxn];int main(){ int T; scanf("%d", &T); for(int kase = 1; kase <= T; kase++) { int start, last, beg ; start = last = beg = 0; int n; scanf("%d", &n); for(int i = 0; i < n; i++) scanf("%d", &num[i]); int maxsum = num[0]; dp[0] = num[0]; for(int i = 1; i < n; i++) { if(dp[i - 1] >= 0)//注意是答案是第一个出现的最优序列,我们是从前开始的,要把等于零的算上。 { dp[i] = dp[i - 1] + num[i]; } else { dp[i] = num[i]; beg = i; } if(dp[i] > maxsum) { start = beg; last = i; maxsum = dp[i]; } } if(kase > 1) printf("\n"); printf("Case %d:\n", kase); printf("%d %d %d\n", maxsum, start + 1, last + 1); } return 0;}
阅读全文
0 0
- HDU-1231&HDU-1003
- HDU 1003
- hdu 1003
- hdu 1003
- HDU 1003
- HDU 1003
- hdu 1003
- hdu 1003
- hdu 1003
- hdu 1003
- hdu 1003
- hdu 1003
- hdu 1003
- hdu 1003
- HDU-1003
- HDU 1003
- hdu 1003
- HDU 1003
- 相机定标
- Maximum sum 二维最大子段和
- [2017.11.19]异常&File类&IO流
- ckeditor安装及使用
- Golang 如何优雅关闭 channel
- hdu 1003
- [LeetCode] [C++] 20. Valid Parentheses
- NLPIR Not valid license or your license expired!
- PyCharm 注释 (Comments) 样式设置
- PyCharm 主题和字体 (Scheme & Editor Font)
- ORPALIS PaperScan Pro(专业扫描软件)官方破解版V3.0.53下载 | paperscan 破解
- 字符串比较
- 如何使用淘宝商品信息采集爬虫-采集电商商品
- 如何使用MATLAB对图像进行批量的修改名称的处理