bzoj1113【poi2008】海报PLA
2015-10-12 23:23
323 查看
1113: [Poi2008]海报PLA
Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 810 Solved: 507
[Submit][Status][Discuss]
Description
N个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们.Input
第一行给出数字N,代表有N个矩形.N在[1,250000] 下面N行,每行给出矩形的长与宽.其值在[1,1000000000]2 1/2 PosteringOutput
最少数量的海报数.Sample Input
51 2
1 3
2 2
2 5
1 4
Sample Output
4HINT
Source
首先,最多需要的海报数为n,就是每个矩形对应一张海报。那么减少海报数量的条件就是:对于两个高度相同的矩形,它们之间所有矩形的高度都不小于它们的高度。所以只需对于每一个矩形判断它左面第一个小于等于它高度的矩形的高度是否等于它的高度,如果相等就将海报数减1。求每个矩形左面第一个小于等于它高度的矩形需要用单调栈维护。
#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> #define F(i,j,n) for(int i=j;i<=n;i++) #define D(i,j,n) for(int i=j;i>=n;i--) #define LL long long #define MAXN 250005 using namespace std; int ans,n,x,y,s[MAXN],t=0; int main() { scanf("%d",&n); ans=n; scanf("%d%d",&x,&y); s[++t]=y; F(i,2,n) { scanf("%d%d",&x,&y); while (t>0&&s[t]>y) t--; if (s[t]==y) ans--; s[++t]=y; } printf("%d\n",ans); }
相关文章推荐
- 标签
- HTML/CSS(一)Bootstrap btn
- Android项目Tab类型主界面大总结 Fragment+TabPageIndicator+ViewPager
- 学一点 mysql 双机异地热备份—-mysql主从,主主备份原理及实践
- [LeetCode] Nim Game 尼姆游戏
- html5in24hours
- Hbase与hive整合
- 钱币组合题
- 托管代码和非托管代码的区别
- 黑马程序员——简析java注解
- viewstub应用
- 2015-10-12
- 八皇后-优化冲突检测
- JavaScript权威设计--事件处理介绍(简要学习笔记十七)
- NetBeans常用快捷键
- 九九乘法表
- Hadoop内容提纲
- 解决Netbeans和Eclipse中的图片路径问题
- iOS开发-ios7下拉刷新,上提加载快速集成
- Etl之HiveSql调优(left join where的位置)