hdu1231最大连续子序列
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=1231
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#define N 10010
using namespace std;
int main()
{
int n,i,a[N],s,m,e,k,MAX,sum,st,en;
while(scanf("%d",&n),n)
{
m=k=;
memset(a,,sizeof(a));
for(i=; i<n; i++)
{
scanf("%d",&a[i]);
if(a[i]<)
m++;
if(a[i]==)
k++;
}
if(m==n)
{
printf("0 %d %d\n",a[],a[n-]);
continue;
}
if(m+k==n)//如果a中只有小数和0则输出三个0;
{
printf("0 0 0\n");
continue;
}
sum=s=st=en=e=MAX=;
for(i=; i<n; i++)
{
if(sum+a[i]<a[i])//当a[i]>a[i]+sum时,要从a[i]开始往下加,之前的不要 ;
{
sum=a[i];
s=e=i;
}
else
{
sum+=a[i];
e=i;
if(MAX<sum)
{
MAX=sum;//MAX是最终要输出的数,所以st和en要随之更新;
st=s;
en=e;
} } }
printf("%d %d %d\n",MAX,a[st],a[en]);
}
56 return 0;
}
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
using namespace std;
#define N 11000
int main()
{
int a[N],dp[N]; int n,i,m,MAX,INDEX,index; while(scanf("%d",&n),n)
{
m=;
for(i=;i<n;i++)
{
scanf("%d",&a[i]);
if(a[i]<)
m++;
}
if(m==n)
{
printf("%d %d %d\n",,a[],a[n-]);
continue;
}
memset(dp,,sizeof(dp));
dp[]=MAX=a[];
index=;
for(i=;i<n;i++)
{
dp[i]=max(a[i],a[i]+dp[i-]);
if(MAX<dp[i])
{
MAX=dp[i];
index=i;
}
}
int sum=;
for(i=index;i>=;i--)
{
sum+=a[i];
if(sum==MAX)
{
INDEX=i;
break;
}
}
printf("%d %d %d\n",MAX,a[INDEX],a[index]);
}
return ;
}
hdu1231最大连续子序列的更多相关文章
- hdu1231最大连续子序列(动态规划)
最大连续子序列 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- 题解报告:hdu1231最大连续子序列
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1231 Problem Description 给定K个整数的序列{ N1, N2, ..., NK } ...
- hdu1231 最大连续子序列
#include<stdio.h> #include<string.h> #define maxn 10010 int a[maxn],dp[maxn]; int main() ...
- HDU-1231 简单dp,连续子序列最大和,水
1.HDU-1231 2.链接:http://acm.hdu.edu.cn/showproblem.php?pid=1231 3.总结:水 题意:连续子序列最大和 #include<iostre ...
- ACM-DP之最大连续子序列——hdu1231
***************************************转载请注明出处:http://blog.csdn.net/lttree************************** ...
- HDU1231 最长连续子序列
最大连续子序列 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Sub ...
- hdu1231 最长连续子序列和
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1231 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, N ...
- 【ToReadList】六种姿势拿下连续子序列最大和问题,附伪代码(以HDU 1003 1231为例)(转载)
问题描述: 连续子序列最大和,其实就是求一个序列中连续的子序列中元素和最大的那个. 比如例如给定序列: { -2, 11, -4, 13, -5, -2 } 其最大连续子序列为{ 11, ...
- divide and conquer - 最大连续子序列 - py
以HDU1231为例,代码之没法交如下: inf = 0x3f3f3f3f a = [0 for i in range(10005)] ans, L, R = -inf, 0, 0 def divid ...
随机推荐
- BZOJ3325 : [Scoi2013]密码
从以每一位为中心的回文串长度可以用Manacher倒推出$O(n)$对相等和不等关系. 将相等的用并查集维护,不等的连边. 然后输出方案时若还没被染过色,则求一个mex. #include<cs ...
- BZOJ3790 : 神奇项链
Manacher求出所有极长回文子串后,得到一堆线段,转化成线段覆盖问题 预处理出g[i]表示左端点不超过i的右端点的最大值 贪心地线段覆盖即可 时间复杂度$O(n)$ #include<cst ...
- JavaScript 导出Excel 代码
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...
- 8.按要求编写Java应用程序。 (1)建立一个名叫Cat的类: 属性:姓名、毛色、年龄 行为:显示姓名、喊叫 (2)编写主类: 创建一个对象猫,姓名为“妮妮”,毛色为“灰色”,年龄为2岁,在屏幕上输 出该对象的毛色和年龄,让该对象调用显示姓名和喊叫两个方法。
package liu0917; public class Cat { String name="妮妮"; int age=2; String maose="灰色&quo ...
- Odoo ir actions 分析
源代码位置:openerp/addons/base/ir/ir_actions.py 根类型:ir.actions.actions class actions(osv.osv): _name = 'i ...
- 懒加载 字典转模型 自定义cell
1 懒加载: 1> 什么是懒加载? 懒加载又称为延时加载,即在系统调用的时候加载,如果系统不调用则不会加载.所谓的懒加载其实就是重写其 get 方法. 2> 特点:在使用懒加载的时候要 ...
- Mui - 全局css
头部(mh) <header class="mui-bar mui-bar-nav"> <a class="mui-action-back mui-ic ...
- Apache Spark源码走读之19 -- standalone cluster模式下资源的申请与释放
欢迎转载,转载请注明出处,徽沪一郎. 概要 本文主要讲述在standalone cluster部署模式下,Spark Application在整个运行期间,资源(主要是cpu core和内存)的申请与 ...
- PHP不仅仅是PHP
PHP不仅仅是PHP PHP不仅仅是PHP. PHP的面试不仅仅会问到PHP语言本身(基本都是基础和细节),下面列举的主要是都是高级工程师的要求 比如:PHP中include和require的区别 ...
- MySQL出现大量unauthenticated user的问题
发现这算属MySQL的一个bug,不管连接是通过hosts还是ip的方式,MySQL都会对DNS做反查,IP到DNS,由于反查的接续速度过 慢(不管是不是isp提供的dns服务器的问题或者其他原因), ...