洛谷 P5019 铺设道路(差分)
嗯...
题目链接: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 铺设道路(差分)相关推荐
- 洛谷2505 [HAOI2012]道路(最短路计数)
洛谷传送门 [题目分析] 线段树?bczd,这么小的范围直接暴力就行啦. 直接O(n)枚举源点,每次跑最短路,然后对于每一条路径统计是否在最短路上.两个端点各有多少条最短路径经过即可. [代码~] # ...
- 洛谷 P2296 寻找道路
感慨 周五比赛的测试题,结果到比赛结束也没有读懂题意...给的样例太少了,我一直以为我是不是spfa敲错了...没想到中间还有卡的地方 分析 题目中的一句耐人寻味的话"路径上的所有点的出边所 ...
- 铺设道路(洛谷P5019题题解,Java语言描述)
题目要求 题目链接 分析 纯模拟,爆炸,数据量太大,然后参考dalaodalaodalao的博客了解本题的贪心算法,最终AC. AC代码(Java语言描述) import java.io.Buffer ...
- 洛谷——P2872 [USACO07DEC]道路建设Building Roads
P2872 [USACO07DEC]道路建设Building Roads 题目描述 Farmer John had just acquired several new farms! He wants ...
- 洛谷2296 寻找道路
题目描述 在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 1 .路径上的所有点的出边所指向的点都直接或间接与终点连通. 2 .在满 ...
- 洛谷 P1272 重建道路(树形DP)
P1272 重建道路 题目描述 一场可怕的地震后,人们用N个牲口棚(1≤N≤150,编号1..N)重建了农夫John的牧场.由于人们没有时间建设多余的道路,所以现在从一个牲口棚到另一个牲口棚的道路是惟 ...
- 洛谷P2357 守墓人(差分+树状数组)
原题链接 什么是差分? 7 8 6 5 8 18 20 35 //原数组 7 1 -2 -1 3 10 2 15 //差分数组 差分数组的前缀sum[i]即原数组的a[i] 我们构建两个树状数组 su ...
- 洛谷P1272 重建道路
https://www.luogu.org/problemnew/show/P1272 一场可怕的地震后,人们用N个牲口棚(1≤N≤150,编号1..N)重建了农夫John的牧场.由于人们没有时间建设 ...
- 洛谷——前缀和与差分
前缀和与差分 文章目录 前缀和与差分 应用总结 前缀和 截断数组 思路 代码 最大加权矩形 题目描述 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 提示 思路 代码 差分 海底高铁 ...
最新文章
- (双引号)与 ' '(单引号)的区别
- 所谓 jQuery 插件,怎样开发一个 jQuery 插件
- CSS过渡属性transitions详细解读——Web前端系列学习笔记
- Hollis原创|深入分析Java的编译原理
- linux组合键 发送指定信号_linux trap脚本信号捕获命令的使用
- 代码管理和检查平台汇总
- 父进程给子进程传参数
- github 使用方法总结 还有一部分不太懂
- Android中插件开发篇之----类加载器
- cad2017单段线_CAD制图规定-2017最新版.doc
- php微信公众号群发,php实现微信公众号无限群发,php信公众群发
- css 设置背景色渐变、字体颜色渐变
- java 生成数字_Java随机生成数字的方法
- 安卓逆向--凤凰新闻app简单分析
- 《Editing Text in the wild》学习笔记
- Java 垃圾回收机制算法分析
- 按键控制步进电机转速(led闪烁)学习心得
- 【SCons 002】Win10 SCon环境搭建
- pascal和C++的相同/不同
- 服务器桌面图标显示在哪里打开,电脑桌面图标消失了怎么解决_网站服务器运行维护,电脑,图标...
热门文章
- UIPickerView 修改必须滚动才修改值的bug
- 编译Linux Kernel(linux-4.19.178)并制作成rpm文件
- 黑裙安装linux环境,Linux学习笔记(一) ---- 安装Linux系统
- 如何使用日志进行程序调试_如何使用日志节省调试时间
- 您需要了解有关Angular中的ng-template,ng-content,ng-container和* ngTemplateOutlet的所有信息...
- devops_最低可行DevOps
- 把.sql文件上传到服务器上
- mysql事件探查器_【干货】Mysql的事件探查器-之Mysql-Proxy代理实战一(安装部署与实战sql拦截与性能监控)...
- Java培训学习步骤有哪些
- python值得报班学习吗