P3817 小A的糖果

题目描述

小 A 有 n 个糖果盒,第 i 个盒中有 a i a_i ai​​ 颗糖果。小 A 每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中糖的个数之和都不大于 x,至少得吃掉几颗糖。输入格式输入的第一行是两个用空格隔开的整数,代表糖果盒的个数 n 和给定的参数 x。第二行有 n 个用空格隔开的整数,第 i 个整数代表第 i 盒糖的糖果个数 a i a_i ai​​。

输出格式

输出一行一个整数,代表最少要吃掉的糖果的数量。

输入输出样例

输入#1

3 3
2 2 2

输出#1

1

输入#2

6 1
1 6 1 2 0 4

输出#2

11

输入#3

5 9
3 1 4 1 5

输出#3

0

说明/提示

样例输入输出 1 解释
吃掉第 2 盒中的两个糖果即可。
样例输入输出 2 解释
第 2 盒糖吃掉 6 颗,第 4 盒吃掉 2 颗,第 6 盒吃掉 3 颗。

数据规模与约定

对于 30% 的数据,保证 n ≤ 20 && a i a_i ai​ , x ≤ 100。
对于 70% 的数据,保证 n ≤ 1 0 3 10^3 103 && a i a_i ai​ , x ≤ 1 0 5 10^5 105。
对于 100% 的数据,保证 2 ≤ n ≤ 1 0 5 10^5 105 && 0 ≤ a i a_i ai​ , x ≤ 1 0 9 10^9 109。

思路

硬做?

代码

​#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<queue>
using namespace std;
int main() {long long n, x;scanf("%lld%lld", &n, &x);long long* box = (long long*)malloc(sizeof(long long) * n);for (int i = 0;i < n;i++) scanf("%lld", &box[i]);long long sum = 0;for (int i = 1;i < n;i++) {if (box[i] + box[i - 1] > x) {sum += box[i] + box[i - 1] - x;//if (box[i] >= box[i] + box[i - 1] - x)//box[i] -= box[i] + box[i - 1] - x;if (x >= box[i - 1])box[i] = x - box[i - 1];else {box[i] = 0;box[i - 1] = - x ;}}}printf("%lld", sum);return 0;
}​

总结

一开始还是忘记用long long类型了

P3817 小A的糖果相关推荐

  1. luogu P3817 小A的糖果

    P3817 小A的糖果 题目描述 小A有N个糖果盒,第i个盒中有a[i]颗糖果. 小A每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中加起来都只有x颗或以下的糖果,至少得吃掉几颗糖 ...

  2. 贪心算法——洛谷(P3817)小A的糖果

    这道题很简单,但是需要思考 当相邻的两盒大于x到时候,应该先吃那一盒呢? 答案:正着遍历,吃后面:反着遍历,吃前面! 为什么是这样的呢? 比如一个样例: 5 6 4 5 3 6 2 此时,若正着遍历, ...

  3. 洛谷P3817 小A的糖果

    感觉情况很多呀,以x/2为分界线,不能有超过两个盒子里的糖果超过他.如果一个盒子里的糖果大于x/2且为t,那么剩下的所有的糖果都不能超过x-t.而且要求的是最少的那种情况,那到底是把糖果多的盒子全吃到 ...

  4. 洛谷 P3817 小A的糖果

    传送门 嗯,模拟加贪心. 考虑第i盒糖的吃糖优先级,肯定有第i盒糖大于第i-1盒糖,因为第i盒糖剩的越少第i+1盒糖吃的越少而第i-1盒糖已经吃了不用再考虑,所以先吃第i盒糖吃完再吃第i-1盒糖. 代 ...

  5. Bzoj 4548: 小奇的糖果(双向链表+排序+树状数组)

    以下内容来自ShallWe's Blog 题目 4548: 小奇的糖果 Description 有\(N\)个彩色糖果在平面上.小奇想在平面上取一条水平的线段,并拾起它上方或下方的所有糖果.求出最多能 ...

  6. 【BZOJ4548】小奇的糖果

    →原题传送门←(by Hzwer) 「题目背景」 小奇不小心让糖果散落到了地上,它对着满地的彩色糖果胡思乱想. 「问题描述」 有 N 个彩色糖果在平面上.小奇想在平面上取一条水平的线段,并拾起它上方或 ...

  7. 1905: 小明的糖果在哪里

    1905: 小明的糖果在哪里 1.描述 小明有一个糖果,他要确定他的这个糖果是否是从john那里拿的, 但小明不会, 你能帮助他么? 输入 先输入10个数(编号),代表john的糖果,编号唯一 下列一 ...

  8. 【GDOI2018模拟7.14】小奇的糖果

    Description 有 N 个彩色糖果在平面上.小奇想在平面上取一条水平的线段,并拾起它上方或下方的所有糖果.求出最多能够拾起多少糖果,使得获得的糖果并不包含所有的颜色. Input 包含多组测试 ...

  9. 6. 小A的糖果(普及-)

    文章目录 问题描述 问题分析 代码实现 运行结果 总结 问题描述 题目描述 小A有n个糖果盒,第i个盒中有a_i颗糖果. 小A每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中糖的个 ...

最新文章

  1. 【Sql Server】DateBase-SQL调整
  2. 2021年大数据Spark(二十二):内核原理
  3. java url map_java url转map ,map转string
  4. ECShop 增加收藏商品排行榜功能
  5. python输出所有素数_Python实现输出某区间范围内全部素数的方法
  6. session多服务器共享的方案梳理
  7. 力扣:1两数之和(python)-------->双向取值
  8. HDOJ 2041 超级楼梯
  9. vba 执行网页javascript_JavaScript秘密笔记 第一集
  10. java单例模式(饿汉式和懒汉式的几种不同写法)
  11. 制作支付页面弹框html,JS实现仿微信支付弹窗功能_蜡烛_前端开发者
  12. Linux统计目录下文件个数及代码行数
  13. Python Types
  14. python实现面部特效_Python实现在线批量美颜功能过程解析
  15. C#实体更新指定的字段
  16. [系统安全] 十七.Windows PE病毒概念、分类及感染方式详解
  17. JRE、JDK下载安装教程
  18. 苹果Mac突然没有声音,3 种方法快速检测
  19. 利用PPT表格对图片进行矩形分割
  20. 在字节跳动实习的真实感受究竟如何?

热门文章

  1. python中路径写法
  2. pads文件转allegro
  3. 腾讯会议大规模任务调度系统架构设计
  4. UML类图中的六大关系:关联(单向、双向、自关联)、聚合、组合、依赖、继承、实现
  5. wavecom GPRS Modem调试笔记
  6. 安卓优秀ROM扒图 [让爱机不再单调,让刷机成为乐趣]---Willack.liu搜集原创...
  7. 注册表增加“TcpAckFrequency”值,提高网络响应速度
  8. web开发门户网站建设方案
  9. 转行python有前途吗_Python发展有前途吗?
  10. python 三列求correlation_Python新手写爬虫全过程记录分析