HDU--dp练习--1004--Max sum
来源:互联网 发布:系统之家数据恢复 编辑:程序博客网 时间:2024/06/03 19:34
题目:
25 6 -1 5 4 -77 0 6 -1 1 -6 7 -5
Case 1:14 1 4Case 2:7 1 6
求最大连续子段和,并求其起止位置。
解题思路:
本身求最大连续子段和不难。
需要在每一步都与当前最大和进行比较,然后记录其起止位置。
源代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,m,i,dp[100005],max2,num[100005],maxl,maxr;//用max2记录最大子段和
cin >> n;
for (int t = 1; t <= n; t++)
{
cin >> m;
memset(dp,0,sizeof(dp));
memset(num,0,sizeof(num));
dp[0] = 0;
max2 = -999999999;//因为可能均为负数,所以max2设置最小值
int flag = 1;
for (i = 1; i <= m; i++)
{
cin >> num[i];
dp[i] = dp[i - 1] + num[i];
if (dp[i] > max2)//比较过程中判断,并更新其起止位置。
{
max2 = dp[i];
maxl = flag;
maxr = i;
}
if (dp[i] < 0)
{
dp[i] = 0;
flag = i + 1;
}
}
cout << "Case " << t << ":" << endl << max2 << " " << maxl << " " << maxr << endl;
if (t != n)
cout << endl;
}
return 0;
}
- HDU--dp练习--1004--Max sum
- HDU- Max Sum (dp)
- hdu 1004 Max Sum 基础dp
- HDU--1003 -- Max Sum [dp]
- HDU 1003 Max Sum(dp)
- HDU 1003 Max Sum(dp)
- HDU--Max sum(DP)
- hdu 1003 Max Sum dp
- hdu 1003 Max Sum (DP)
- HDU 1003 Max Sum(DP)
- HDU-1003-Max Sum【DP】
- HDU 1003 Max Sum DP .
- HDU-1003-Max Sum(DP)
- HDU-1003 Max Sum (dp)
- 【日常练习】HDU 1003 Max Sum
- hdu 1024 Max Sum Plus Plus--DP
- hdu 1003 Max Sum (DP)
- hdu 1024 Max Sum Plus Plus(dp)
- 在IntelliJ IDEA中设置import project(本人导入的是java项目)
- epoll的内部实现 看了就会懂
- Spring集成jedis实现对redis操作
- LightOJ 1079 概率型 01背包
- C++程序员学Java系列之三十:数据结构之向量Vector
- HDU--dp练习--1004--Max sum
- Leetcode刷题day2
- 阿里 HotFix 热更新 集成
- 自己动手编写FreeBSD内核防火墙模块
- poj2080--算日期
- Java集合类
- 生成标签的工具
- angular-cli
- 线索二叉树的生成及遍历