[POI2008]海报PLA

Description
N个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们.

Input
第一行给出数字N,代表有N个矩形.N在[1,250000] 下面N行,每行给出矩形的长与宽.其值在[1,1000000000]2 1/2 Postering

Output
最少数量的海报数.

Sample Input
5
1 2
1 3
2 2
2 5
1 4

Sample Output
4

HINT


单调递增栈随便搞一下就好

/*program from Wolfycz*/
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define inf 0x7f7f7f7f
using namespace std;
typedef long long ll;
typedef unsigned int ui;
typedef unsigned long long ull;
inline int read(){
	int x=0,f=1;char ch=getchar();
	for (;ch<'0'||ch>'9';ch=getchar())	if (ch=='-')    f=-1;
	for (;ch>='0'&&ch<='9';ch=getchar())	x=(x<<1)+(x<<3)+ch-'0';
	return x*f;
}
inline void print(int x){
	if (x>=10)     print(x/10);
	putchar(x%10+'0');
}
const int N=2.5e5;
int stack[N+10],top;
int main(){
	int n=read(),same=0;
	for (int i=1;i<=n;i++){
		int x=read(),y=read();
		while (top&&y<=stack[top]){
			if (y==stack[top])	same++;
			top--;
		}
		stack[++top]=y;
	}
	printf("%d\n",n-same);
	return 0;
}
posted @ 2018-04-26 21:23  Wolfycz  阅读(253)  评论(0编辑  收藏  举报