码迷,mamicode.com
首页 > 其他好文 > 详细

FZU 2168 防守阵地 I

时间:2016-04-30 18:15:46      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:

  这是一道很容易超时的题,我超了n次了,后来队友提示我才想到,bigsum ! ! ! !就是前n项和的前n项和

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int sum[1000010],n;
int bigsum[1000010];
int main()
{
    int m;
    while(~scanf("%d%d",&n,&m))
    {
        sum[0] = bigsum[0] = 0;
        for(int i = 1;i <= n;i++)
        {
            int nu;
            scanf("%d",&nu);
            sum[i] = sum[i-1] + nu;
            bigsum[i] = bigsum[i-1] + sum[i];
        }
        long long max = 0,num = 0;
        for(int i = m;i <= n;i++)
        {
            num = 0;
            num = m * sum[i] - (bigsum[i-1] - bigsum[i-m-1]);
            if(num > max)
            max = num;
        }
        printf("%I64d\n",max);
    }
    return 0;
}

 

FZU 2168 防守阵地 I

标签:

原文地址:http://www.cnblogs.com/jifahu/p/5448973.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!