社区
数据结构与算法
帖子详情
HDOJ 1003 maxsum(最大连续子序列和)
zhichixian
2013-06-07 10:47:17
http://acm.hdu.edu.cn/showproblem.php?pid=1003我的代码老是Runtime Error (STACK_OVERFLOW),试了几组多个最大和的数据也都符合题目要求,还有什么特别的情况是没考虑到的?谢谢?希望能提供组Runtime Error(STACK_OVERFLOW)的数据,不要贴代码
...全文
87
3
打赏
收藏
HDOJ 1003 maxsum(最大连续子序列和)
http://acm.hdu.edu.cn/showproblem.php?pid=1003我的代码老是Runtime Error (STACK_OVERFLOW),试了几组多个最大和的数据也都符合题目要求,还有什么特别的情况是没考虑到的?谢谢?希望能提供组Runtime Error(STACK_OVERFLOW)的数据,不要贴代码
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
FancyMouse
2013-06-07
打赏
举报
回复
大数据递归栈溢出而已。别写递归。
zhichixian
2013-06-07
打赏
举报
回复
#include <stdio.h> #include <string.h> #define N 100005 #define MIN -9999 int arr[N]; int m; int sum[N]; int end[N]; int max; int m1; int m2; int maxsum(int si) { if (si >= m || si < 0) return 0; int tmax = maxsum(si+1); if (arr[si] + tmax > arr[si]) { sum[si] = arr[si] + tmax; end[si] = (si+1 >= m) ? si : end[si+1]; } else { sum[si] = arr[si]; end[si] = si; } if (sum[si] >= max) { max = sum[si]; m1 = si; m2 = end[si]; } return sum[si]; } int main() { int n = 0; scanf("%d", &n); int i = 0; for (i = 0; i < n; i++) { scanf("%d", &m); int j = 0; for (j = 0; j < m; j++) scanf("%d", arr+j); max = MIN; m1 = m2 = 0; maxsum(0); // printf("Case %d:\n%d %d %d\n", i+1, max, m1+1, m2+1); if (i != n-1) printf("\n"); } return 0; } /* 2 5 6 -1 5 4 -7 7 0 6 -1 1 -6 7 -5 */
zhichixian
2013-06-07
打赏
举报
回复
引用 2 楼 FancyMouse 的回复:
大数据递归栈溢出而已。别写递归。
hd
oj
Max
Sum
最大
连续
子序列
和问题
这个题目是
最大
连续
子序列
和的扩展,在此基础上加了起始点和终止点。 (1)终止点的确定,就是每当更新一次
Max
的值时,更新一下终止点。 (2)起始点的确定,当This
sum
<0时,给一个暂时起始点的标记,然后...
hd
oj
1003
+codeup2086:
Max
Sum
最大
连续
子序列
和(dp基础题+dp入门-----分治/遍历求和/dp)
hd
oj
1003
求解方法 暴力求解O(n^3)/O(n^2)(不推荐,很可能会超时) 分治法(比较复杂,掌握思想即可) 遍历求和法O(n) dp动态规划(强推) codeup2086的求解方法 dp求解
hd
oj
1003
求解方法 暴力求解O(n^3)...
HD
OJ
1003
.
Max
Sum
(DP——
最大
连续
子序列
和)
Max
Sum
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 276300 Accepted Submission(s): 65616Problem DescriptionGiven a sequence a[1],a[2],a[3]...
hd
oj
1003
Max
Sum
(DP
最大
子序列
求和)
题目:...要求出这个数字序列中和
最大
的
连续
子序列
,输出
最大
和以及
子序列
的起始位置。 思路一: 动态规划问题,
sum
=
sum
那么
max
_
sum
=A+B;无论B的和值是多少,可以断定的是A>=0;所以条
最大
子序列
和
HD
OJ
1003
Max
Sum
题意:求MCS(
最大
连续
子序列
和)及两个端点分析:第一种办法:dp[i] =
max
(dp[i-1] + a[i], a[i]) 可以不开数组,用一个
sum
表示前i个数字的MCS,其实是一样的。。。类似DP的做法有个名字叫联机算法。 第二种办法...
数据结构与算法
33,007
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章