HDU 1003 Max Sum(AC代码)
#include <stdio.h>
int main(){
int i,t,j,n,x;
int start,end,temp,max,sum;
scanf("%d",&t);
for(i=;i<t;i++){
temp=;
max=-;
sum=;
scanf("%d",&n);
for(j=;j<n;j++){
scanf("%d",&x);
sum+=x;
if(sum>=max){
max=sum;
start=temp;
end=j+;
}
if(sum<){
sum=;
temp=j+;
}
}
printf("Case %d:\n",i+);
printf("%d %d %d\n",max,start,end);
if(i!=t-){
printf("\n");
}
start=;
end=;
}
return ;
}
格式看代码就行啦。
情况分析:
1、序列全为负数,则找出最大的那个即可。
2、子序列前面(多个)为负数,后面为正数,则start一定在负数之后。
3、子序列后面(多个)为负数,前面为正数,则end一定在负数之前。
4、即所要求的子序列应是:第一个必须0或正数,最后一个必须为0或正数
解题分析:
1、start和end分别记下开始和结束。
2、sum计算自序列的总和,若总和大于最大值,则修改最大值
3、若出现过max,且sum一直在减少,则当sum小于0时,sum清零(此时前面出现过最大的序列,开始和结束已记好),sum是从temp处开始加起的,所以temp要保持和sum一致,即sum小于零时就要修改temp。
HDU 1003 Max Sum(AC代码)的更多相关文章
- HDOJ(HDU).1003 Max Sum (DP)
HDOJ(HDU).1003 Max Sum (DP) 点我挑战题目 算法学习-–动态规划初探 题意分析 给出一段数字序列,求出最大连续子段和.典型的动态规划问题. 用数组a表示存储的数字序列,sum ...
- HDU 1003 Max Sum --- 经典DP
HDU 1003 相关链接 HDU 1231题解 题目大意:给定序列个数n及n个数,求该序列的最大连续子序列的和,要求输出最大连续子序列的和以及子序列的首位位置 解题思路:经典DP,可以定义 ...
- hdu 1003 Max Sum (DP)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1003 Max Sum Time Limit: 2000/1000 MS (Java/Others) ...
- HDU 1003 Max Sum【动态规划求最大子序列和详解 】
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- hdu 1003 MAX SUM 简单的dp,测试样例之间输出空行
测试样例之间输出空行,if(t>0) cout<<endl; 这样出最后一组测试样例之外,其它么每组测试样例之后都会输出一个空行. dp[i]表示以a[i]结尾的最大值,则:dp[i ...
- HDU - 1003 Max Sum 【DP】
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1003 题意 给出一个序列 要求找出一个和最大的子序列 思路 O(N)的做法 但是要标记 子序列的头部位 ...
- HDU 1003 Max Sum
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- HDU 1003 Max Sum 解题报告
题目大意:求一串数字中,几个连续数字加起来最大值,并确定起始和最末的位置. 思路:这是一题DP题,但是可以用尺取法来做.我一开始不会,也是看了某大神的代码,然后有人告诉我这是尺取法,现在会了. //尺 ...
- HDU 1003 Max Sum && HDU 1231 最大连续子序列 (DP)
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
随机推荐
- 超棒的响应式设计测试书签和工具(bookmarks)(转)
一.测试书签(bookmarks) Viewport Resizer 这个书签号称拥有158个国家3万多活跃的用户,主要特性: 完全自定制 方便的添加自定义尺寸 手动的横竖屏切换 自动的横竖屏切换 ( ...
- Android SDK的安装以及环境变量的配置
想来试试app的开发,于是便需要在电脑上安装各种软件包,其中Android SDK就是其中一种,特地记录一下其安装过程: 1.下载地址http://baoku.360.cn/soft/show/app ...
- 在eclipse导入项目的步骤【转】
1. Import 2. Next 3. 确定 选中copy projects into workspace Finish 这样项目就导入进来了. 4.导入jar包 Configure Bui ...
- Sharepoint2010突然之间不能打开页面,报503错误The service is unavailable
原因:安装Sahrepoint时的账号出现故障,可能是密码过期等等. 解决方案: 新建windows用户ada,密码设置为永不过期,隶属于:administrators/IIS-WPG/WSS-WPG ...
- Tomcat6.0总是运行不了 总是出现Unable to open the service 'Tomcat6'
如果配置没有问题的话,如果你是win7系统,在开始菜单运行Tomcat,运行提示"Unable to open the service ‘tomcat6’"的话,应该是win7的安 ...
- SQL查询表占用空间大小
SQL查询表占用空间大小. create table tmp (name varchar(50),rows int,reserved varchar(50),data varchar(50),inde ...
- P264练习题1.2题
package 集合; import java.util.*; public class fourteen { public static void main(String[] args) { //1 ...
- POJ 2771 二分图(最大独立集)
Guardian of Decency Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 5244 Accepted: 21 ...
- 【NOIP2015】提高组D1 解题报告
P1978神奇的幻方 Accepted 描述 幻方是一种很神奇的 N ∗ N 矩阵:它由数字 1,2,3, … … , N ∗ N 构成,且每行.每列及两条对角线上的数字之和都相同. 当 N 为奇数时 ...
- C语言:文件操作
以附加方式打开文件,输入数据,关闭文件. #include<stdio.h> #include<stdlib.h> int main() { FILE *fp = NULL; ...