牛客小白月赛4——H-相邻的糖果
链接:https://www.nowcoder.com/acm/contest/134/H
来源:牛客网
题目描述
现在你可以执行以下操作:
·你可以选择任意一个盒子,在选择的盒子内吃掉一个糖果。
对你的要求如下:
·任何m个相邻的盒子内糖果数量不能超过x个。
请问,实现要求的最少操作次数是多少?
输入描述:
第一行三个数字n, m, x(2 ≤ n,m ≤ 10
6
,1 ≤ x ≤ 10
9
)。
第二行n个数字(1 ≤ a
i
≤ 10
9
)。
输出描述:
输出一个操作数,代表实现要求的最少操作数。
输入例子:
3 2 3
2 1 2
输出例子:
0
-->
说明
2 1 2满足题目要求,任意相邻的两个数值之和均不超过3,所以不需要进行任何操作。 题解:尺取思想,先找出n个数中前m个数需要多少操作数,
然后再将这长度为m的滑块以每次滑动一步的操作,
更新每次滑动后所需要加的操作数,滑到最后既可以得到结果
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e6+;
ll n,m,x;
ll a[maxn];
int main(){
ios::sync_with_stdio(false);
cin>>n>>m>>x;
for(int i=;i<=n;i++){
cin>>a[i];
}
ll sum=;
for(int i=;i<=m;i++){
sum+=a[i];
}
int pos=m;
ll ans=;
while(sum>x){
ll tt=min(sum-x,a[pos]);
a[pos]-=tt;
sum-=tt;
ans+=tt;
pos--;
}
for(int i=m+;i<=n ;i++){
sum+=a[i];
sum-=a[i-m];
if(sum>x){
ll tt=min(sum-x,a[i]);
a[i]-=tt;
sum-=tt;
ans+=tt;
}
}
cout<<ans<<endl;
return ;
}
牛客小白月赛4——H-相邻的糖果的更多相关文章
- 牛客小白月赛4 H 相邻的糖果 思维
链接:https://www.nowcoder.com/acm/contest/134/H来源:牛客网 题目描述 有n个盒子摆成一排,每个盒子内都有ai个糖果. 现在你可以执行以下操作: ·你可以选择 ...
- [牛客小白月赛4 H] 相邻的糖果
Description 有n个盒子摆成一排,每个盒子内都有ai个糖果. 现在你可以执行以下操作: ·你可以选择任意一个盒子,在选择的盒子内吃掉一个糖果. 对你的要求如下: ·任何m个相邻的盒子内糖果数 ...
- 牛客小白月赛16 H 小阳的贝壳 (差分+线段树)
链接:https://ac.nowcoder.com/acm/contest/949/H来源:牛客网 题目描述 小阳手中一共有 n 个贝壳,每个贝壳都有颜色,且初始第 i 个贝壳的颜色为 colico ...
- 牛客小白月赛16 H小阳的贝壳 (线段树+差分数组)
链接:https://ac.nowcoder.com/acm/contest/949/H来源:牛客网 题目描述 小阳手中一共有 n 个贝壳,每个贝壳都有颜色,且初始第 i 个贝壳的颜色为 colico ...
- 牛客小白月赛2 H 武 【Dijkstra】
链接:https://www.nowcoder.com/acm/contest/86/H来源:牛客网 题目描述 其次,Sεlιнα(Selina) 要进行体力比武竞赛. 在 Sεlιнα 所在的城市, ...
- 牛客网 牛客小白月赛1 H.写真がとどいています
H.写真がとどいています 链接:https://www.nowcoder.com/acm/contest/85/H来源:牛客网 这个题数乱了,导致wa了好几次. 特别弱智,从A开始往上,就 ...
- 牛客小白月赛12 H 华华和月月种树 (离线dfs序+线段树)
链接:https://ac.nowcoder.com/acm/contest/392/H 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 131072K,其他语言2621 ...
- 牛客小白月赛12 H(dfs序+线段树),F(分块思想+bit),J(二分)
H 华华和月月种树 链接:https://ac.nowcoder.com/acm/contest/392/H 思路:先得到整棵树最终的形态,在这棵树上进行三种操作,用dfs跑下,第二种操作就直接对最终 ...
- 牛客小白月赛1 H 写真がとどいています 【循环】
题目链接 https://www.nowcoder.com/acm/contest/85/H 思路 如果熟悉 五线谱 才能做啊... 然后 先竖着遍历 再 横着 遍历 就可以了 AC代码 #inclu ...
随机推荐
- IntelliJ IDEA 方法注释教程
首先Ctrl +Alt +S ,打开Settings ,找到Live Template,然后点击右侧的绿色的“+”,选择Template Group 然后给新建的Group随便命个名 选中自己刚才创建 ...
- MySQL5.6基于mysql-proxy实现读写分离
已经搭建好MySQL主从架构 10.205.22.185 #mysql-proxy 10.205.22.186 #master 10.205.22.187 #slave 1.安装mysql-proxy ...
- PXE+DHCP+TFTP+Cobbler 无人值守安装centos 7
Cobbler(补鞋匠)是通过将DHCP.TFTP.DNS.HTTP等服务进行集成,创建一个中央管理节点,其可以实现的功能有配置服务,创建存储库,解压缩操作系统媒介,代理或集成一个配置管理系统,控制电 ...
- mysql的jdbc.url携带allowMultiQueries=true参数的作用及其原理
如下配置 jdbc.url=jdbc:mysql://127.0.0.1:3306/chubb_2?autoReconnect=true&useUnicode=true&charact ...
- 正则表达式(re)
1.re.match(pattern, str, flag) 从str的第一个字母开始匹配,若不是开头的,尽管属于str内,则无法匹配. 2.贪婪匹配与非贪婪匹配(?) 贪婪匹配:尝试匹配尽可能多的字 ...
- NPOI导出Excel,添加图片和设置格式,添加条形码
先上代码 using grproLib; using System; using System.Collections.Generic; using System.Data; using System ...
- iOS-UICollectionViewController 介绍
废话不多说,列几个列子 (几种情况下的做法): 情景一: 介绍:1. 在UIViewController 上加 UICollectionView (用代码 创建 UICollectionView). ...
- JAVA-数组或集合
哈哈,今天我们来讲解一下有关于一些数组 或者是集合的知识点 1.ArrayList,LinkedList,Vector的区别 ArrayList,LinkedList,Vector都是实现List接口 ...
- JAVA EE配TOMCAT
纯粹就是吧百度教程上的过程走了一遍发现不行综合各种教程配出来了,四张图代表了四个阶段,以后再要配的话直接来这里看.
- shuffle的过程分析
shuffle的过程分析 shuffle阶段其实就是之前<MapReduce的原理及执行过程>中的步骤2.1.多个map任务的输出,按照不同的分区,通过网络copy到不同的reduce节点 ...