【日常学习】【其他算法】codevs3371 刮油漆题解
来源:互联网 发布:淘宝怎么修改折扣价 编辑:程序博客网 时间:2024/05/17 01:45
题目描述 Description
小J有一把尺子。一天MPS闲得无聊,拿了一桶油漆,用刷子在上面刷了N下,刷第i次有一个正整数范围(ai,bi),表示从尺子的刻度ai刷到刻度bi。此时ai到bi这个区间里的油漆层数+1。
为了去掉这些油漆,小J找来了一把刀,每次可以从尺子的一个整数刻度刮到另一个整数刻度。每刮一刀都有一个力度,如力度为3时可以一次刮掉3层油漆。但不能损坏尺子。比如有2层油漆的地方就不能用力度3来刮。
小J想知道最少要刮多少次。
输入描述 Input Description
第一行,一个整数N
第2...N+1行,第i+1行两个整数ai,bi。
输出描述 Output Description
一行,最少刮多少次。
样例输入 Sample Input
3
1 4
2 5
1 5
样例输出 Sample Output
2
数据范围及提示 Data Size & Hint
【样例解释】
刮2刀,第一次刮区间(1,5),力度为2,第一次刮区间(2,4),力度为1。
【数据范围】
40%的数据N<=2000
100%的数据N,ai,bi<=10^5
于是按照积木大赛的算法改了一下,但是失败了···
但是和正确的算法也有异曲同工之妙
事实上,我们只需要在读入每个区间时【对区间的左端点a[k]+1,右端点a[k]-1,最后统计是正数多还是负数多即可】
为什么这样可以呢?我们举一个例子:
第一个区间【1,3】
第二个区间【1,5】
那么图像是这样的
XXX
XXXXX
对应数字为
1 0 -1 0 -1
结合积木大赛的思路,由于负数有两个,有两处下降,那么至少两次才能刮完。更多情况,可以以此深入理解。
code
——泪随流水急,愁逐野云飞
0 0
- 【日常学习】【其他算法】codevs3371 刮油漆题解
- 【日常学习】【数学-其他】洛谷1403 约数研究题解
- 【日常学习】【二分图匹配】【匈牙利算法】codevs4265 大智的妹子们题解
- 【日常学习】【floyd】codevs1077 多源最短路 题解
- 【日常学习】codevs1294 全排列题解
- 【日常学习】【深搜】codevs2452 扫雷题解
- 【日常学习】codevs1287 矩阵乘法题解
- 【日常学习】【IDA*】codevs2449 骑士精神题解
- 【日常学习】【优先队列】POJ1338 Uva136 - Ugly Numbers题解
- 【日常学习】【双端队列】 Uva - 210 Concurrency Simulator题解
- 【日常学习】【栈】【表达式求值】Uva442 - Matrix Chain Multiplication题解
- 【日常学习】【二叉树遍历】Uva548 - Tree题解
- 【日常学习】【最短路Dijkstra】codevs1069 usaco回家 题解
- 【日常学习】【SPFA+SLF+LLL】codevs1021 玛丽卡题解
- 【日常学习】【Dijkstra堆优化】codevs2038 香甜的黄油题解
- 【日常学习】【拓扑排序】家谱树&FZU1483 Sicily1424 奖金 题解
- 【日常学习】【欧拉函数】codevs2296 仪仗队题解
- 【日常学习】【组合数取模Lucas定理】HDU3037 Saving Beans题解
- 2016最新Android安卓短信拦截(过Android4.4和Android5.0和Android5.1)源码
- leetcode笔记:Gas Station
- HTML5和HTML4之间的区别
- 我的乘法分析
- hdu2176取(m堆)石子游戏 组合游戏初步——NIM
- 【日常学习】【其他算法】codevs3371 刮油漆题解
- 网络安全和机器学习:准确的特征可通向成功
- STM32的启动文件解读
- 7个最好的javascript资源
- Java求解数组中的两个元素的最小距离
- Android实战简易教程-第五十七枪(分享小米手电筒源码)
- CSS的盒模型及元素分类(块级元素、内联元素、内联块状元素)
- codecombat安息之云山峰37-40及地牢42关代码分享
- Hibernate中实体类的设计原则