hdoj 1003 Max Sum 【最大子段和】【贪心】

题意:。。。

策略:看着像贪心,感觉也是贪心。

很久之前做的,又做了一遍,好题。

代码:

#include<stdio.h>
#include<string.h>
int s[100005];
int main()
{
	int t, i, j, l, st, en, n, v = 1;
	scanf("%d", &t);
	while(t --){
		scanf("%d", &n);
		for(i = 1; i <= n; i ++){
			scanf("%d", &s[i]);
		}
		int max = -1000000;
		int sum = 0;
		l = st = en = 1;//l是储存当前子段的起始
		for(i = 1; i <= n; i ++){
			if(sum >= 0){
				sum+=s[i];
			}
			else{
				sum = s[i];
				l = i;
			}
			if(sum > max){//只有当sum>max的时候才更新st和en
				max = sum;
				st = l;
				en = i;
			}
		}
		printf("Case %d:\n", v++);
		printf("%d %d %d\n", max, st, en);
		if(t) printf("\n");
	}
} 

hdoj 1003 Max Sum 【最大子段和】【贪心】,布布扣,bubuko.com

时间: 2024-12-27 01:26:09

hdoj 1003 Max Sum 【最大子段和】【贪心】的相关文章

最大子序列和 HDOJ 1003 Max Sum

题目传送门 1 /* 2 题意:求最大连续子序列和及两个端点 3 累积遍历算法 O(n):依照sum<0将序列分块,最值在某一块上产生.dp也是同样的思路:dp[i] = max (dp[i-1] + a[i], a[i]) 其实是一样的 4 1003就这么难?? 5 详细解释 6 */ 7 /************************************************ 8 * Author :Running_Time 9 * Created Time :2015-8-10

HDOJ 1003 Max Sum【MSS】

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1003 Max Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 158875    Accepted Submission(s): 37166 Problem Description Given a sequence a[1],a[2

hdoj 1003 Max Sum

Max Sum Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 11   Accepted Submission(s) : 5 Problem Description Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a su

Hdoj 1003.Max Sum 题解

Problem Description Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 14. Input The first line of the input contains

HDOJ 1003 Max Sum(dp)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1003 思路分析:该问题为最大连续子段和问题,使用动态规划求解: 1)最优子结构:假设数组为A[0, 1, 2,….., n],在所有的可能的解中,即解空间中找出所有的解,可以知道,所有的解都为以A[j](j = 0, 1, …, n) 为尾的连续子段,则假设dp[j]表示以在数组A[1, 2, …, j]中以A[j]结尾的字段的最大的和,我们就可以刻画子空间中的所有解的特征:如果 dp[j] > 0

[ACM] hdu 1003 Max Sum(最大子段和模型)

Max Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 135262    Accepted Submission(s): 31311 Problem Description Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max s

HDU 1003 Max Sum 最大连续子序列的和

Problem Description Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 14. Input The first line of the input contains

杭电 1003 Max Sum

http://acm.hdu.edu.cn/showproblem.php?pid=1003 Max Sum Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 142781    Accepted Submission(s): 33242 Problem Description Given a sequence a[1],a[2],a[3

HDU 1003 Max Sum(dp,最大连续子序列和)

Max Sum Problem Description Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub-sequence. For example, given (6,-1,5,4,-7), the max sum in this sequence is 6 + (-1) + 5 + 4 = 14. Input The first line of the input