题目(1231)

#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
int K,num[10010],cnt;
int end,start,thisMax,Max,temp;
while(cin>>K&&K)
{
cnt=0;
for( int i=0; i<K; i++)
{
scanf("%d",&num[i]);
if(num[i] < 0 )
cnt++;
}
if(cnt == K)
{
printf("%d %d %d\n",0,num[0],num[K-1]);
continue;
}
start = end = 0;
Max = thisMax = num[0];
for( int i=1; i<K; i++ )
{
if(thisMax < 0)
{
temp = i;
thisMax = 0;
}
thisMax += num[i];
if(thisMax > Max)
{
Max = thisMax;
end = i;
start = temp;
}
}
printf("%d %d %d\n",Max,num[start],num[end]);
}
return 0;
}

虽然看了别人的博客AC了但是自己还是不知其所以然。。。




题目(1003)

这道题和上面那道题没有多大的区别,可以说是一模一样,唯一有点疑惑的是,上面那道题的temp 没有赋予初值却对,下面这道题就不可以了
#include<stdio.h>
#include<cstring>
#include<iostream>
using namespace std;
int main()
{
int T,cnt=0,n;
int num[100010];
int thisMax,Max,temp;
scanf("%d",&T);
while(T--)
{
int start, end;
memset(num,0,sizeof(num));
cnt++;
scanf("%d",&n);
for(int i=0; i<n; i++)
scanf("%d",&num[i]);
start = end = temp = 0;
thisMax = Max = num[0]; for( int i=1; i<n; i++ )
{
if(thisMax < 0)
{
temp = i;
thisMax = 0;
}
thisMax += num[i];
if(thisMax > Max)
{
Max = thisMax;
end = i;
start = temp;
}
} if(cnt != 1) printf("\n");
printf("Case %d:\n",cnt);
printf("%d %d %d\n",Max,start+1,end+1); }
return 0;
}

hdu 1231 最大连续子序列 ,1003 Max Sum;的更多相关文章

  1. HDU 1231 最大连续子序列 --- 入门DP

    HDU 1231 题目大意以及解题思路见: HDU 1003题解,此题和HDU 1003只是记录的信息不同,处理完全相同. /* HDU 1231 最大连续子序列 --- 入门DP */ #inclu ...

  2. HDU 1231.最大连续子序列-dp+位置标记

    最大连续子序列 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  3. 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 ...

  4. HDU 1231 最大连续子序列 &&HDU 1003Max Sum (区间dp问题)

    C - 最大连续子序列 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit ...

  5. hdu 1003 hdu 1231 最大连续子序列【dp】

    HDU1003 HDU1231 题意自明.可能是真的进步了点,记得刚开始研究这个问题时还想了好长时间,hdu 1231还手推了很长时间,今天重新写干净利落就AC了. #include<iostr ...

  6. DP专题训练之HDU 1231 最大连续子序列

    Description 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j < ...

  7. HDU 1231 最大连续子序列:水dp

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1231 题意: 给你一个整数序列,求连续子序列元素之和最大,并输出该序列的首尾元素(若不唯一,输出首坐标 ...

  8. HDU 1231 最大连续子序列(水题)

    题目链接: 传送门 最大连续子序列 Time Limit: 1000MS     Memory Limit: 32768 K Description 给定K个整数的序列{ N1, N2, ..., N ...

  9. HDU 1231:最大连续子序列 解题报告

    第一次写博客, 自己总结写出了一道题感觉值得保存. 自己总结的规律:求最大连续子序列, 可以先求包括第N项在内的前N项最大值, (因为每一项都求过后, 前N项最大值最大的那一个元素所连续的序列即为最大 ...

  10. HDU 1231 最大连续子序列 (dp)

    题目链接 Problem Description 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ...,  Nj },其中 1 <= ...

随机推荐

  1. c# 7 vs2017 tuple

    var unnamed = (42, "The meaning of life");    var anonymous = (16, "a perfect square& ...

  2. intellij idea 的安装与简单使用

    1.将安装包拷贝到指定目录,特别注意不要有中文路径和空格,路径不要太深 2.点击安装(如果是win10系统要使用管理员权限安装)       3. 4.修改默认安装目录:一般来说我们都不要把软件安装在 ...

  3. python,遍历文件的方法

    在做验证码识别时,识别时需要和库里的图片对比,找到最接近的那个图片,然后就行到了用与图片一致的字符命名,获取文件的名称,去将图片的名称读出来作为验证码.以下是我通过网上的资料总结的三种文件遍历的方式, ...

  4. webrtc 开发之前必须了解的东西

    1.创建offer的时候带上参数:{ offerToReceiveAudio: true, offerToReceiveVideo: true } 2.onicecandidate 必须写在 setL ...

  5. c++ 根据生产日期,保质期求出过期时间

    第4关:计算日期 挑战任务 我们吃的食物都有保质期,现在食品监督管理局想要制作一个能准确计算食品过期日期的小程序,需要请你来进行设计. 例如:A食品在2018年1月1日生产,保质期是20天,则它的过期 ...

  6. Js语言的奇怪特性

    var a = .3 - 2; console.log(a); a = 0.099999998 而不是0.1,是不是很奇怪?

  7. iframe父窗口和子窗口之间的调用

    1>父窗口获取子窗口 js方法 document.getElementById('if1').contentWindow.document: window.frames["if1&qu ...

  8. Golang之时间、日期类型

    孤身只影的一直小地鼠,艰难的走在路上 package main import ( "fmt" "time" ) //获取时间的格式 func testTime( ...

  9. NFS 挂载 + autofs

    NFS:Network File System RPC:Remote Procedure Call 一.手动挂载  (mount -t nfs 服务端IP:/共享目录  /本地挂载点) 客户端 1.安 ...

  10. Laravel Nginx 站点配置文件(Homestead)

    server {     listen 80;     listen 443 ssl http2;     server_name fmtmis.local;     root "/home ...