• XidianOJ 1062 Black King Bar


    题目描述

    For kazmodon!

    ——A DotA hero using BKB


    一天,lw梦见自己在打dota,然而对面是一个加强过的卡尔!于是,他每次都被n个技能瞬间秒杀。愤怒的lw决定买BKB,来加强生存力。

    由于加强过的卡尔是电脑操作的,他每次看见lw时,只会以1毫秒的时间间隔连续放n个技能,第i个技能造成ki点伤害。如果某个技能没有成功放出来,他也不会试图再次释放该技能。已知lw的BKB可以为他提供t毫秒的魔免时间(即,能抵挡连续的t个技能),那么BKB至多能降低多少伤害呢?

    输入

    多组数据(不超过10组)。

    每组数据,第一行2个整数n、t,第二行n个整数k1,k2,...,kn,用空格分割。

    数据保证1<=n<=100000,1<=t<=10000,0<=ki<=1000。

    输出

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    typedef long long LL;
    
    LL k[100001];
    int n,t;
    int main(){
        while (scanf("%d %d",&n,&t) != EOF){
            LL sum = 0,max = 0;
            k[0] = 0;
            int i; 
            for (i=1;i<=n;i++){
                scanf("%d",&k[i]);
                sum += k[i];
                if (i >= t){
                    sum -= k[i-t];
                    if (sum > max)
                        max = sum; 
                }
            }
            if (max == 0){
                max = sum;
            }
            printf("%lld
    ",max);
        }
        return 0;
    }

    输出1行,一个整数,表示BKB能避免的最大伤害。

    --正文

    特殊的区间操作,直接在读入数据的时候就可以开始处理了

    注意(n < t)的特殊情况

  • 相关阅读:
    690. 员工的重要性
    【递推算法】
    【数据排序】快速排序
    【数据排序】车厢重组
    【基本算法--高精度计算】大整数相加
    【基本算法--高精度计算】回文数
    高精度计算 除法 高精除以低精
    PReLU
    重学C++(1)
    概率论基础知识回顾(1)
  • 原文地址:https://www.cnblogs.com/ToTOrz/p/6115228.html
Copyright © 2020-2023  润新知