1. 程式人生 > >[Poi2008]海報PLA

[Poi2008]海報PLA

pos string 圖片 mage pan ios iostream ima sin

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; }

[Poi2008]海報PLA