ACM-DP最大连续子——hdu1231
***************************************转载请注明出处:http://blog.csdn.net/lttree***************************************
最大连续子序列
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 17941 Accepted Submission(s): 7941
Nj },当中 1 <= i <= j <= K。
最大连续子序列是全部连续子序列中元素和最大的一个,
比如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和
为20。
在今年的数据结构考卷中,要求编敲代码得到最大和,如今添加一个要求,即还须要输出该
子序列的第一个和最后一个元素。
素。中间用空格分隔。
假设最大连续子序列不唯一,则输出序号i和j最小的那个(如输入例子的第2、3组)。
若全部K个元素都是负数,则定义其最大和为0,输出整个序列的首尾元素。
6
-2 11 -4 13 -5 -2
10
-10 1 2 3 4 -5 -23 3 7 -21
6
5 -8 3 2 5 0
1
10
3
-1 -5 -2
3
-1 0 -2
0
20 11 13
10 1 4
10 3 5
10 10 10
0 -1 -2
0 0 0Huge input, scanf is recommended.HintHint
/****************************************
*****************************************
* Author:Tree *
*From :http://blog.csdn.net/lttree *
* Title : 最大连续子序列 *
*Source: hdu 1231 *
* Hint : dp *
*****************************************
****************************************/
#include <stdio.h>
int a[10001],sum[10001],pre[10001];
int main()
{
int n,i;
int Max,Max_i;
// isnegtive来推断是否全部数都小于0
bool isnegtive;
while( scanf("%d",&n)!=EOF && n)
{
isnegtive=false;
for(i=0;i<n;++i)
{
scanf("%d",&a[i]);
if( a[i]>=0 ) isnegtive=true;
} // 假设全部数都小于0,后面不用算,直接输出
if( !isnegtive )
{
printf("0 %d %d\n",a[0],a[n-1]);
continue;
} // 计算最大序列和
sum[0]=pre[0]=a[0];
for( i=1;i<n;++i )
{
if( sum[i-1]+a[i]>a[i] )
{
sum[i]=sum[i-1]+a[i];
pre[i]=pre[i-1];
}
else
sum[i]=pre[i]=a[i];
} // 寻找最大子序列和。存下下标
Max=-999999;
for( i=0;i<n;++i )
{
if( sum[i]>Max )
{
Max=sum[i];
Max_i=i;
}
} printf("%d %d %d\n",Max,pre[Max_i],a[Max_i]);
}
return 0;
}
版权声明:本文博客原创文章,博客,未经同意,不得转载。
ACM-DP最大连续子——hdu1231的更多相关文章
- hdu1003 最大连续子序和
Description Given a sequence a[1],a[2],a[3]......a[n], your job is to calculate the max sum of a sub ...
- 【剑指offer】最大和连续子阵列
个開始,到第3个为止).你会不会被他忽悠住? 输入: 输入有多组数据,每组測试数据包括两行. 第一行为一个整数n(0<=n<=100000),当n=0时,输入结束.接下去的一行包括n个整数 ...
- LeetCode 581. Shortest Unsorted Continuous Subarray (最短无序连续子数组)
Given an integer array, you need to find one continuous subarray that if you only sort this subarray ...
- [LeetCode] Shortest Unsorted Continuous Subarray 最短无序连续子数组
Given an integer array, you need to find one continuous subarray that if you only sort this subarray ...
- Java课程课后作业190315之从文档中读取随机数并得到最大连续子数组
从我上一篇随笔中,我们可以得到最大连续子数组. 按照要求,我们需要从TXT文档中读取随机数,那在此之前,我们需要在程序中写入随机数 import java.io.File; import java.i ...
- UVALive 3938 - "Ray, Pass me the dishes!" - [最大连续子列和+线段树]
题目链接:https://cn.vjudge.net/problem/UVALive-3938 参考刘汝佳书上说的: 题意: 给出一个长度为n的序列, 再给出m个询问, 每个询问是在序列 $[a,b] ...
- Leetcode 581.最短无序连续子数组
最短无序连续子数组 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序. 你找到的子数组应是最短的,请输出它的长度. 示例 1: 输入: [2, ...
- LeetCode 581. 最短无序连续子数组(Shortest Unsorted Continuous Subarray)
581. 最短无序连续子数组 581. Shortest Unsorted Continuous Subarray 题目描述 给定一个整型数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序 ...
- 【LeetCode】1438. 绝对差不超过限制的最长连续子数组 Longest Continuous Subarray With Absolute Diff Less Than or Equal t
作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 滑动窗口 日期 题目地址:https://leetco ...
随机推荐
- Linux訪问受限,訪问Linux总是Forbidden
很多其它具体文档:http://download.csdn.net/download/zml_2015/8843061 有些人在依照要求一模一样照做之后,加上了全部的权限.可还是无法訪问,仍然是各种f ...
- Mysql学习笔记(二)数据类型 补充
原文:Mysql学习笔记(二)数据类型 补充 PS:简单的补充一下数据类型里的String类型以及列类型... 学习内容: 1.String类型 2.列类型存储需求 String类型: i.char与 ...
- Spring Bean的作用域(转)
Spring Bean的作用域 .singleton [单例] eg:<bean id="personService" class="com.yinger.ser ...
- 算法入门经典大赛 Dynamic Programming
111 - History Grading LCS 103 - Stacking Boxes 最多能叠多少个box DAG最长路 10405 - Longest Common Subsequence ...
- UVa 11463 - Commandos
主题:有一个敢死队,要销毁的建筑群,他们从一个特定建筑物离开,最后到一组特定的建筑物的. 现在,各个建筑物之间进行连接的路由,班车需要在建筑物1时间单位,我问的第一次集合. 分析:图论,最短路径.直接 ...
- 【原创】leetCodeOj --- Sliding Window Maximum 解题报告
天,这题我已经没有底气高呼“水”了... 题目的地址: https://leetcode.com/problems/sliding-window-maximum/ 题目内容: Given an arr ...
- 《Head First 设计模式》学习笔记——迭代模式 + 组合模式
迭代模式设置共生死亡,一般来说.我们只是想实现一个集,我们需要的同时提供这个集合的迭代器,喜欢java中间Collection.List.Set.Map等,这些集合都有自己的迭代器.假如我们要实现一个 ...
- 【原创】leetCodeOj --- Fraction to Recurring Decimal 解题报告
原题地址: https://oj.leetcode.com/problems/fraction-to-recurring-decimal/ 题目内容: Given two integers repre ...
- java战斗系列-战斗MAVENPW结构
实战中MAVEN私服的搭建 利用maven来管理项目的构建,报告和文档已经成为了我们如今的共识,不论什么开源软件基本都在使用,当然我们如今的大部分公司也基本都在使用,我把曾经使用maven的一些经 ...
- CentOS6.2安装memcache
一,安装libevent # cd /tmp # wget http://www.monkey.org/~provos/libevent-1.3.tar.gz # tar -zxvf libevent ...