NOI Online #3 提高组 T1水壶 题解
题目描述
有 n 个容量无穷大的水壶,它们从 1∼n 编号,初始时 i 号水壶中装有 Ai 单位的水。
你可以进行不超过 k 次操作,每次操作需要选择一个满足 1≤x≤n−1 的编号 x,然后把 x 号水壶中的水全部倒入 x+1 号水壶中。
最后你可以任意选择恰好一个水壶,并喝掉水壶中所有的水。现在请你求出,你最多能喝到多少单位的水。
输入格式
第一行一个正整数 n,表示水壶的个数。
第二行一个非负整数 k,表示操作次数上限。
第三行 n 个非负整数,相邻两个数用空格隔开,表示水壶的初始装水量 A1、A2⋯An。
输出格式
一行,仅一个非负整数,表示答案。
输入输出样例
输入 #1
10
5
890 965 256 419 296 987 45 676 976 742
输出 #1
3813
分析
这道题比之前的T1友好多了
首先,倒水的这几个水壶肯定要相连,否则不会产生最大的价值
那么我们就可以把问题转化为在一个序列中求一段长度固定的区间的和,使这个和最大
这样的话我们用前缀和记录一下就好了,复杂度为O(n)
这道题唯一需要注意的是倒k次水,区间的长度为k+1
代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1e6+5;
ll a[maxn],qzh[maxn];
int main(){
    ll n,k;
    scanf("%lld%lld",&n,&k);
    for(ll i=1;i<=n;i++){
        scanf("%lld",&a[i]);
        qzh[i]=a[i]+qzh[i-1];
    }
    k++;
    ll ans=-1;
    for(ll l=1;l<=n;l++){
        ll r=l+k-1;
        if(r>n) break;
        ans=max(ans,qzh[r]-qzh[l-1]);
    }
    printf("%lld\n",ans);
    return 0;
}
												
											NOI Online #3 提高组 T1水壶 题解的更多相关文章
- JZOJ2020年8月11日提高组T1 密码
		
JZOJ2020年8月11日提高组T1 密码 题目 Description 在浩浩茫茫的苍穹深处,住着上帝和他的神仆们,他们闲谈着下界的凡人俗事,对人世间表现的聪明智慧,大加赞赏.今天他们正在观赏大地 ...
 - 【GDKOI2014】JZOJ2020年8月13日提高组T1 阶乘
		
[GDKOI2014]JZOJ2020年8月13日提高组T1 阶乘 题目 Description Input 第一行有一个正整数T,表示测试数据的组数. 接下来的T行,每行输入两个十进制整数n和bas ...
 - 【五校联考1day2】JZOJ2020年8月12日提高组T1 对你的爱深不见底
		
[五校联考1day2]JZOJ2020年8月12日提高组T1 对你的爱深不见底 题目 Description 出乎意料的是,幸运E 的小R 居然赢了那个游戏.现在欣喜万分的小R 想要写一张明信片给小Y ...
 - 【NOIP2015模拟11.5】JZOJ8月5日提高组T1 俄罗斯套娃
		
[NOIP2015模拟11.5]JZOJ8月5日提高组T1 俄罗斯套娃 题目 题解 题意就是说 将1~\(n\)排列,问有多少种方案使得序列的逆序对个数小于\(k\) 很容易想到DP 设\(f[i][ ...
 - 【GDOI2007】JZOJ2020年8月10日提高组T1 夏娜的菠萝包
		
[GDOI2007]JZOJ2020年8月10日提高组T1 夏娜的菠萝包 题目 Description 夏娜很喜欢吃菠萝包,她的经纪人RC每半个月就要为她安排接下来的菠萝包计划.今天是7月份,RC又要 ...
 - 【NOIP2012模拟8.7】JZOJ2020年8月8日提高组T1 奶牛编号
		
[NOIP2012模拟8.7]JZOJ2020年8月8日提高组T1 奶牛编号 题目 作为一个神秘的电脑高手,Farmer John 用二进制数字标识他的奶牛. 然而,他有点迷信,标识奶牛用的二进制数字 ...
 - 【佛山市选2013】JZOJ2020年8月7日提高组T1 回文子序列
		
[佛山市选2013]JZOJ2020年8月7日提高组T1 回文子序列 题目 描述 回文序列是指左右对称的序列.例如1 2 3 2 1是回文序列,但是1 2 3 2 2就不是.我们会给定一个N×M的矩阵 ...
 - 【NOIP2015模拟11.4】JZOJ8月6日提高组T1 刷题计划
		
[NOIP2015模拟11.4]JZOJ8月6日提高组T1 刷题计划 题目 题解 题意 有\(n\)道题,编号为1~\(n\) 给出\(m\)次操作 每次操作有3种类型 1 \(x\) 表示交了\(A ...
 - luogu P6570 [NOI Online #3 提高组]优秀子序列 二进制 dp
		
LINK:P6570 [NOI Online #3 提高组]优秀子序列 Online 2的T3 容易很多 不过出于某种原因(时间不太够 浪了 导致我连暴力的正解都没写. 容易想到 f[i][j]表示前 ...
 
随机推荐
- jdbc+mysql常见报错总结
			
1.The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone. You ...
 - Centos7上添加自定义服务文件并开机启动
			
Ⅰ-1 写服务文件 [Unit] ##服务的说明Description:描述服务After:描述服务类别 [Service] ##服务运行参数的设置Type=forking是后台运行的形式Ex ...
 - openshift v1.5 不能登录system:admin 问题
			
这个好像是无法解决的,我按照github和google所有步骤试过了,还是不能登录system:admin .需要密码.弄了两个小时,后来放弃了,直接使用新版本3.6的,按照官网方法部署,可以使用直接 ...
 - Alink漫谈(七) : 如何划分训练数据集和测试数据集
			
Alink漫谈(七) : 如何划分训练数据集和测试数据集 目录 Alink漫谈(七) : 如何划分训练数据集和测试数据集 0x00 摘要 0x01 训练数据集和测试数据集 0x02 Alink示例代码 ...
 - 并发系列(一)——线程池源码(ThreadPoolExecutor类)简析
			
前言 本文主要是结合源码去线程池执行任务的过程,基于JDK 11,整个过程基本与JDK 8相同. 个人水平有限,文中若有表达有误的,欢迎大伙留言指出,谢谢了! 一.线程池简介 1.1 使用线程池的优点 ...
 - Excel只想显示一部分日期,怎样把其余部分隐藏起来?
			
问题:只想显示一部分日期,怎样把其余部分隐藏起来? 方法:分列 Step1:选中需要修改的单元格——数据——分列. Step2:固定宽度——点击下一步. Step3:在建立分列处单击鼠标(若想取消 ...
 - TensorFlow从0到1之XLA加速线性代数编译器(9)
			
加速线性代数器(Accelerated linear algebra,XLA)是线性代数领域的专用编译器.根据 https://www.tensorflow.org/performance/xla/, ...
 - (五)POI-设置单元格的对齐方式
			
原文链接:https://blog.csdn.net/class157/article/details/92817149 package com.java.poi; import org.apache ...
 - 视频的清晰度 1080p 720p 2k 4k是什么意思?
			
在bilibili上看了一些个视频,发现它视频的清晰度有很多种选法.诸如720p,1080p,2k,4k,以及我看直播时经常遇见的蓝光,超清.它们的含义分别是什么呢?为了搞清楚这个问题,也为了以后的观 ...
 - 这一次搞懂Spring事务注解的解析
			
前言 事务我们都知道是什么,而Spring事务就是在数据库之上利用AOP提供声明式事务和编程式事务帮助我们简化开发,解耦业务逻辑和系统逻辑.但是Spring事务原理是怎样?事务在方法间是如何传播的?为 ...