嗯...

题目链接:https://www.luogu.org/problem/P5019

首先简化一下题意:

给定一个长为N的数组,每次操作可以选择一个区间减去1,问最少多少次操作可以将数组中的数全变成0 N≤100000

思路:

首先对于第一个数字d_1我们至少需要在上面花d_i次,然后考虑每一个d_i,对于它比上一个数字小(或等于)的那一部分,

我们可以在对上一个数字操作时一块操作。如果d_i > d_i - 1,也就是说它比上一个数大,那么我们就必须多进行d_i - d_i - 1次操作。

很明显,数与数之间会有差,而差会造成一些区间问题,所以这道题的正解是差分...

我们用b数组维护差分,然后将大于0的差分数组加到ans中即可。

AC代码:

 1 #include<cstdio>
 2 #include<iostream>
 3
 4 using namespace std;
 5
 6 int ans, d[100005], b;
 7
 8 int main(){
 9     int n;
10     scanf("%d", &n);
11     for(int i = 1; i <= n; i++){
12         scanf("%d", &d[i]);
13         b = d[i] - d[i - 1];
14         if(b > 0) ans += b;
15     }
16     printf("%d", ans);
17     return 0;
18 }
19     

AC代码

转载于:https://www.cnblogs.com/New-ljx/p/11267087.html

洛谷 P5019 铺设道路(差分)相关推荐

  1. 洛谷2505 [HAOI2012]道路(最短路计数)

    洛谷传送门 [题目分析] 线段树?bczd,这么小的范围直接暴力就行啦. 直接O(n)枚举源点,每次跑最短路,然后对于每一条路径统计是否在最短路上.两个端点各有多少条最短路径经过即可. [代码~] # ...

  2. 洛谷 P2296 寻找道路

    感慨 周五比赛的测试题,结果到比赛结束也没有读懂题意...给的样例太少了,我一直以为我是不是spfa敲错了...没想到中间还有卡的地方 分析 题目中的一句耐人寻味的话"路径上的所有点的出边所 ...

  3. 铺设道路(洛谷P5019题题解,Java语言描述)

    题目要求 题目链接 分析 纯模拟,爆炸,数据量太大,然后参考dalaodalaodalao的博客了解本题的贪心算法,最终AC. AC代码(Java语言描述) import java.io.Buffer ...

  4. 洛谷——P2872 [USACO07DEC]道路建设Building Roads

    P2872 [USACO07DEC]道路建设Building Roads 题目描述 Farmer John had just acquired several new farms! He wants ...

  5. 洛谷2296 寻找道路

    题目描述 在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件:  1 .路径上的所有点的出边所指向的点都直接或间接与终点连通.  2 .在满 ...

  6. 洛谷 P1272 重建道路(树形DP)

    P1272 重建道路 题目描述 一场可怕的地震后,人们用N个牲口棚(1≤N≤150,编号1..N)重建了农夫John的牧场.由于人们没有时间建设多余的道路,所以现在从一个牲口棚到另一个牲口棚的道路是惟 ...

  7. 洛谷P2357 守墓人(差分+树状数组)

    原题链接 什么是差分? 7 8 6 5 8 18 20 35 //原数组 7 1 -2 -1 3 10 2 15 //差分数组 差分数组的前缀sum[i]即原数组的a[i] 我们构建两个树状数组 su ...

  8. 洛谷P1272 重建道路

    https://www.luogu.org/problemnew/show/P1272 一场可怕的地震后,人们用N个牲口棚(1≤N≤150,编号1..N)重建了农夫John的牧场.由于人们没有时间建设 ...

  9. 洛谷——前缀和与差分

    前缀和与差分 文章目录 前缀和与差分 应用总结 前缀和 截断数组 思路 代码 最大加权矩形 题目描述 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 提示 思路 代码 差分 海底高铁 ...

最新文章

  1. (双引号)与 ' '(单引号)的区别
  2. 所谓 jQuery 插件,怎样开发一个 jQuery 插件
  3. CSS过渡属性transitions详细解读——Web前端系列学习笔记
  4. Hollis原创|深入分析Java的编译原理
  5. linux组合键 发送指定信号_linux trap脚本信号捕获命令的使用
  6. 代码管理和检查平台汇总
  7. 父进程给子进程传参数
  8. github 使用方法总结 还有一部分不太懂
  9. Android中插件开发篇之----类加载器
  10. cad2017单段线_CAD制图规定-2017最新版.doc
  11. php微信公众号群发,php实现微信公众号无限群发,php信公众群发
  12. css 设置背景色渐变、字体颜色渐变
  13. java 生成数字_Java随机生成数字的方法
  14. 安卓逆向--凤凰新闻app简单分析
  15. 《Editing Text in the wild》学习笔记
  16. Java 垃圾回收机制算法分析
  17. 按键控制步进电机转速(led闪烁)学习心得
  18. 【SCons 002】Win10 SCon环境搭建
  19. pascal和C++的相同/不同
  20. 服务器桌面图标显示在哪里打开,电脑桌面图标消失了怎么解决_网站服务器运行维护,电脑,图标...

热门文章

  1. UIPickerView 修改必须滚动才修改值的bug
  2. 编译Linux Kernel(linux-4.19.178)并制作成rpm文件
  3. 黑裙安装linux环境,Linux学习笔记(一) ---- 安装Linux系统
  4. 如何使用日志进行程序调试_如何使用日志节省调试时间
  5. 您需要了解有关Angular中的ng-template,ng-content,ng-container和* ngTemplateOutlet的所有信息...
  6. devops_最低可行DevOps
  7. 把.sql文件上传到服务器上
  8. mysql事件探查器_【干货】Mysql的事件探查器-之Mysql-Proxy代理实战一(安装部署与实战sql拦截与性能监控)...
  9. Java培训学习步骤有哪些
  10. python值得报班学习吗