浮水法——贴海报题解
2015-12-29 20:44
477 查看
题目:贴海报
描述:
张贴规则如下:
1.electoral墙是一个长度为N个单位的长方形,每个单位记为一个格子;
2.所有张贴的海报的高度必须与electoral墙的高度一致的;
3.每张海报以“A B”表示,即从第A个格子到第B个格子张贴海报;
4.后贴的海报可以覆盖前面已贴的海报或部分海报。
现在请你判断,张贴完所有海报后,在electoral墙上还可以看见多少张海报。
第一行: N M 分别表示electoral墙的长度和海报个数
接下来M行: Ai Bi 表示每张海报张贴的位置
输出贴完所有海报后,在electoral墙上还可以看见的海报数。
AC代码
<Marvolo原创,严禁转载>
描述:
【题目描述】
Bytetown城市要进行市长竞选,所有的选民可以畅所欲言地对竞选市长的候选人发表言论。为了统一管理,城市委员会为选民准备了一个张贴海报的electoral墙。张贴规则如下:
1.electoral墙是一个长度为N个单位的长方形,每个单位记为一个格子;
2.所有张贴的海报的高度必须与electoral墙的高度一致的;
3.每张海报以“A B”表示,即从第A个格子到第B个格子张贴海报;
4.后贴的海报可以覆盖前面已贴的海报或部分海报。
现在请你判断,张贴完所有海报后,在electoral墙上还可以看见多少张海报。
【输入格式】
第一行: N M 分别表示electoral墙的长度和海报个数接下来M行: Ai Bi 表示每张海报张贴的位置
【输出格式】
输出贴完所有海报后,在electoral墙上还可以看见的海报数。
【样例输入】
100 5 1 4 2 6 8 10 3 4 7 10
【样例输出】
4
【提示】
program zht; var n,m,i,t,p,ans:longint; a,b:array[0..1000] of longint; bh:array[0..10000000] of longint; begin assign(input,'ha14d.in'); assign(output,'ha14d.out'); reset(input); rewrite(output); readln(n,m); for i:=1 to m do readln(a[i],b[i]); for i:=m downto 1 do begin t:=a[i]; p:=bh[0]; while t<=b[i] do begin if t>b[i] then break; if bh[t]=0 then begin inc(bh[0]); bh[t]:=b[i]; inc(t);continue; end; if bh[t]>0 then t:=bh[t]+1; end; if p<>bh[0] then inc(ans); end; writeln(ans); close(input); close(output); end.
AC代码
<Marvolo原创,严禁转载>
相关文章推荐
- BZOJ 1787: [Ahoi2008]Meet 紧急集合
- 《Monkey Android》第8课FrameLayout、GridLayout
- OkHttpClient
- LeetCode之Tree题目汇总
- HTML <!DOCTYPE> 标签 布局引用的几种方法 行级元素与块级元素
- Maxwell’s Equations
- 03 给定链表头结点, 依次输出从尾节点到头结点的数据
- 查看Linux系统的发行版本,32位还是64位
- hibernate入门简单案例
- NSRunLoop
- [LeetCode]#8 String to Integer (atoi)
- 为RecyclerView添加头部和脚部的UI控件:Bookends
- 顺时针打印矩阵
- mysql之控制行操作(一)
- mac重启需要多次输入钥匙串密码的问题
- yum安装node.js
- iOS小程序-混合计算器
- 《Monkey Android》第7课RelativeLayout、TableLayout
- Js清除Cookie
- 信息竞赛学习笔记:POJ3579中位数(二分)