zoukankan      html  css  js  c++  java
  • 1490: 连续子串和 (贪心)

    1490: 连续子串和

    http://www.acmore.net/problem.php?id=1490

    Time Limit: 1 Sec  Memory Limit: 128 MB
    Submit: 209  Solved: 36

    Description

    小Y前段时间刚刚做完连续子串和问题,相信大家对连续子串和也都不陌生,现在小Y又碰到了一个新的难题,给定N个整数,求至少K个数连续的最大和为多少?

    Input

    若干组测试数据,每组数据第一行给出两个数N(1<=N<=10^6),K(1<=K<=N)。接下来一行N个数字,分别是a1,a2...aN,对于每个数满足-1000<=ai<=1000。

    Output

    输出长度大于等于K的连续整数和值中最大的一个。

    Sample Input

    5 3 -2 3 6 0 1

    Sample Output

    10

     分析:

    典型贪心,要求最少k个连续整数和的最大值,从第k个数开始枚举每一个数字作为结束点。保留前i位数的前缀和为sum[i],对于以i为结束的序列,其值为

    sum[i]-sum[i-k], sum[i]-sum[i-k-1], sum[i]-sum[i-k-2], sum[i]-sum[1], sum[0]之一,那么我们只需要对每一个i保留sum[0]到sum[i-k]的最小值就可以了

     1 #include<iostream>
     2 #include<algorithm>
     3 #include<cstdio>
     4 #include<cstring>
     5 using namespace std;
     6 
     7 const int maxn = 1e6+10;
     8 const int INF = 0x3f3f3f3f;
     9 
    10 int n,k;
    11 int num[maxn];
    12 
    13 int solve(){
    14     int tmp=INF;
    15     int ans=-INF;
    16     for(int i=k; i<=n; i++ ){
    17         tmp=min(tmp,num[i-k]);
    18         ans=max(ans,num[i]-tmp);
    19        /* cout<<"tmp="<<tmp<<" "<<"ans="<<ans<<endl;*/
    20     }
    21     return ans;
    22 }
    23 
    24 int main(){
    25    /* freopen("C:\Users\Brave_Wtz\Desktop\in.txt","r",stdin);
    26     freopen("C:\Users\Brave_Wtz\Desktop\put.txt","w",stdout);*/
    27     while(~scanf("%d%d",&n,&k)){
    28         memset(num,0,sizeof(num));
    29         for( int i=1; i<=n; i++ ){
    30             cin>>num[i];
    31             num[i]+=num[i-1];
    32         }
    33         cout<<solve()<<endl;
    34     }
    35     fclose(stdin);
    36     fclose(stdout);
    37     return 0;
    38 }
     
    有些目标看似很遥远,但只要付出足够多的努力,这一切总有可能实现!
  • 相关阅读:
    目录和文件的权限设置方法
    logstash5 单实例多配置文件实现
    elasticsearch 使用快照方式迁移数据
    mysql 主库有数据通过锁库做主从
    mfs挂载
    web页面性能分析一些网址
    centos7 ffmpeg安装
    (转)在 Windows 上安装Rabbit MQ 指南
    (转)TeamCity配置笔记
    (转)分布式缓存GemFire架构介绍
  • 原文地址:https://www.cnblogs.com/Bravewtz/p/10396114.html
Copyright © 2011-2022 走看看