HDU 1003
来源:互联网 发布:网络作家村 编辑:程序博客网 时间:2024/06/07 04:06
题目大意:给出n个数,求出其中连续子序列和最大的为多少,这个子序列的头位置以及尾位置。
解题思路:很容易想到状态和状态转移的dp,dp[0]肯定等于输入的第一个数,后面的dp[i]根据前一个数是否大于0,如果大于0说明,此时可以加上前一个dp作为结果,否则直接用这个位置的数作为dp的值。后面去找就位置就简单了,要注意可能结果为负数的情况。
ac代码:
#include <iostream>using namespace std;int a[100005], n, m, cnt=1, Max, dp[100005];int main(){scanf("%d", &n);while (n--){scanf("%d", &m);for (int i=0; i<m; i++)scanf("%d", &a[i]);dp[0] = a[0];for (int i=1; i<m; i++)if (dp[i-1] < 0)dp[i] = a[i];elsedp[i] = dp[i-1] + a[i];Max = dp[0];for (int i=1; i<m; i++)if (dp[i] > Max)Max = dp[i];printf("Case %d:\n%d ", cnt++, Max);for (int i=0; i<m; i++)if (dp[i] == Max){Max = i;for (int j=i; dp[j]>=0 && j>=0; j--)Max = j;printf("%d ", Max+1);printf("%d\n", i+1);break;}if (n)printf("\n");}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
- 目标检测3 Fast R-CNN
- android中的序列化和反序列化
- TLS/SSL 协议详解 (5) 运用密码学原理构建安全信道3
- C# 如何在PDF文档中添加打印按钮
- 异常
- HDU 1003
- JS函数声明和预解析的理解
- 编译Android 7.0 内核报错
- 数据库知识整合
- POJ
- [HDU 6165]FFF at Valentine
- Apache Shiro学习笔记(二)身份验证获取SecurityManager
- Python进行参数调优GridSearchCV和RandomizedSearchCV
- grep查找