hdu 1003 Max Sum
来源:互联网 发布:江西在线网安全知让 编辑:程序博客网 时间:2024/05/21 02:34
今晚把自己的编辑器给折腾了一下,耽误了不少时间,依旧是按照网上大神给出的线路一点一点的练习。
这道题目还是水,状态转移方程是dp[i] = max(dp[i-1]+a[i],a[i])得到结果之后再搜索一遍就好,这道题目还要求求出其实位置,末尾位置其实已经知道了,在求其实位置的过程中我采用了遍历的方法。
题目链接:https://vjudge.net/problem/HDU-1003
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int inf = 0x3f3f3f3f;const int maxn = 100005;int dp[maxn];int a[maxn];int n;int ncase , cnt = 1;void solve () {int start , end;int ans = -inf;dp[1] = a[1];for (int i = 2 ; i <= n ; i++) {dp[i] = max(dp[i-1]+a[i] , a[i]);}for (int i = 1 ; i <= n ; i++)if (ans < dp[i]) {ans = dp[i];end = i;}int tmp = 0;for (int i = end ; i >= 1 ; i--) {tmp += a[i];if (tmp == ans) start = i;}printf("Case %d:\n", cnt++);printf("%d %d %d\n", ans , start , end);}int main () {scanf("%d" , &ncase);while (ncase--) {memset(dp,0,sizeof(dp));memset(a,0,sizeof(a));scanf("%d" , &n);for (int i = 1 ; i <= n ; i++)scanf("%d" , &a[i]);solve();if(ncase) printf("\n");}}
0 0
- HDU 1003 Max Sum
- hdu 1003 Max Sum
- hdu 1003 Max Sum
- HDU-1003 max sum
- HDU 1003 - Max Sum
- HDU 1003 Max Sum
- hdu 1003 Max Sum
- HDU 1003 Max Sum
- HDU 1003 Max Sum
- hdu 1003 max sum
- HDU 1003 Max Sum
- hdu 1003 Max Sum
- HDU 1003 Max Sum
- hdu 1003 Max Sum
- HDU 1003 Max Sum
- Hdu 1003 - Max Sum
- HDU-1003-Max Sum
- hdu - 1003 - Max Sum
- C++Primer第五版 第五章习题答案(11~20)
- ROT13密码
- webview.cpp
- 史上最精炼Java基础知识点总结
- ASP .NET DropDownList多级联动事件
- hdu 1003 Max Sum
- Box2D v2.3.0 用户指南(第七章)
- Oracle列转行函数 Listagg() 语法详解及应用实例
- gdb调试(c++)
- Box2D v2.3.0 用户指南(第八章)
- Hadoop Yarn内存资源隔离实现原理——基于线程监控的内存隔离方案
- 【ife】任务二十六:行星与飞船(一)
- Box2D v2.3.0 用户指南(第九章)
- FFMPEG 解码音频