BZOJ 1113: [Poi2008]海报PLA

题目

1113: [Poi2008]海报PLA

Time Limit: 10 Sec  Memory Limit: 162 MB

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

题解

这道题目,我们可以像一旦出现高度一样的就可以用同一张海报盖掉,但是两张海报之中的海报就只能单独再贴了。基于这个思路,我们可以写一个单调栈。

代码

 1 /*Author:WNJXYK*/
 2 #include<cstdio>
 3 using namespace std;
 4 int t,x,n,s[250001],top,ans;
 5 int main(){
 6     scanf("%d",&n);
 7     for(int i=1;i<=n;i++){
 8        scanf("%d%d",&t,&x);
 9        while(x<=s[top]){
10            if(x==s[top])ans++;
11            top--;
12        }
13        s[++top]=x;
14     }
15     printf("%d",n-ans);
16     return 0;
17 }

时间: 2024-10-18 09:25:55

BZOJ 1113: [Poi2008]海报PLA的相关文章

1113: [Poi2008]海报PLA

1113: [Poi2008]海报PLA Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 765  Solved: 466[Submit][Status][Discuss] Description N个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们. Input 第一行给出数字N,代表有N个矩形.N在[1,250000] 下面N行,每行给出矩形的长与宽.其值在[1,1000000000]2 1/2 Postering Output 最

【BZOJ 1113】 [Poi2008]海报PLA

1113: [Poi2008]海报PLA Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 751  Solved: 453 [Submit][Status] Description N个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们. Input 第一行给出数字N,代表有N个矩形.N在[1,250000] 下面N行,每行给出矩形的长与宽.其值在[1,1000000000]2 1/2 Postering Output 最少数量的海报数

bzoj1113[Poi2008]海报PLA*

bzoj1113[Poi2008]海报PLA 题意: N个矩形,排成一排.现在希望用尽量少的矩形海报盖住它们.不能盖到矩形之外的地方.n≤250000. 题解: 发现如果有一对矩形高度相等,且中间的矩形高度都比它们高,那么就可以省下一个矩形海报.故可以用个单调递增的栈维护. 代码: 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #include <stack> 5 #def

[Poi2008]海报PLA

传送门 sb单调栈,唯一要注意的是高度相同的时候不需要更新答案 代码: #include<cstdio> #include<iostream> #include<algorithm> using namespace std; void read(int &x) { char ch; bool ok; for(ok=0,ch=getchar(); !isdigit(ch); ch=getchar()) if(ch=='-') ok=1; for(x=0; isdi

BZOJ1113 海报PLA

好像是很古老的题?现在BZOJ上找不到该题,所以没有提交. 1113: [Poi2008]海报PLA Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 810  Solved: 507[Submit][Status][Discuss] Description N个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们. (SilverN附注:矩形外不能贴海报) Input 第一行给出数字N,代表有N个矩形.N在[1,250000] 下面N行,每

bzoj 1113 海报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 [解析] 单调增栈. 显然贴海报只与矩形的高有关.发现当两个矩形高相同并且这两个矩形之间的矩形的高度都

海报PLA (HYSBZ - 1113)单调栈模板

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                               先解释下题意,题目说的不是很清楚 看上面两幅图,是样例的排列方式,

BZOJ 1124[POI2008]枪战

题面: 1124: [POI2008]枪战Maf Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 659  Solved: 259[Submit][Status][Discuss] Description 有n个人,每个人手里有一把手枪.一开始所有人都选定一个人瞄准(有可能瞄准自己).然后他们按某个顺序开枪,且任意时刻只有一个人开枪.因此,对于不同的开枪顺序,最后死的人也不同. Input 输入n人数<1000000 每个人的aim Output

【单调栈】【bzoj1113】海报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 题解:单调栈的水题,维护一个递增的单调栈,退栈时如果遇到相等,就代表可以少用一张海报. #i