好像是很古老的题?现在BZOJ上找不到该题,所以没有提交。

1113: [Poi2008]海报PLA

Time Limit: 10 Sec  Memory Limit: 162 MB
Submit: 810  Solved: 507
[Submit][Status][Discuss]

Description

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

(SilverN附注:矩形外不能贴海报)

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

根据神秘提示 可以用单调栈来处理。

先假设每个矩形都用一张海报覆盖。从左到右遍历,对于一个矩形,如果左边有和它高度相等的矩形(且两个矩形之间没有更低的),那么可以用一大张海报覆盖这两个矩形和它们之间的部分(见上图),则总海报数-- 。

用单调栈维护“左边第一个比当前矩形低的矩形”,如果该矩形高度和当前矩形相同,那么总海报数--

代码如下:

 #include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
int n;
int st[];
int t=;
int ans;
int main(){
scanf("%d",&n);
ans=n;//最差情况需要n张海报
int i,j;
int x,y;
scanf("%d%d",&x,&y);
st[++t]=y;
for(i=;i<=n;i++){
scanf("%d%d",&x,&y);
while(t> && st[t]>y)t--;
if(st[t]==y)ans--;
st[++t]=y;
}
printf("%d\n",ans);
return ; }

BZOJ1113 海报PLA的更多相关文章

  1. BZOJ1113 Poi2008 海报PLA【单调栈】【水】

    BZOJ1113 Poi2008 海报PLA Description N个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们. Input 第一行给出数字N,代表有N个矩形.N在[1,250 ...

  2. 【BZOJ-1113】海报PLA 单调栈

    1113: [Poi2008]海报PLA Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 896  Solved: 573[Submit][Status ...

  3. BZOJ 1113: [Poi2008]海报PLA

    1113: [Poi2008]海报PLA Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1025  Solved: 679[Submit][Statu ...

  4. 1113: [Poi2008]海报PLA

    1113: [Poi2008]海报PLA Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 765  Solved: 466[Submit][Status ...

  5. bzoj 1113 [Poi2008]海报PLA 单调栈

    [Poi2008]海报PLA Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1304  Solved: 896[Submit][Status][Dis ...

  6. BZOJ1113 [Poi2008]海报PLA 【分治 + 线段树】

    题目链接 BZOJ1113 题解 显然只与高有关,每次选择所有海报中最低的覆盖所有海报,然后分治两边 每个位置会被调用一次,复杂度\(O(nlogn)\) \(upd:\)智障了,,是一道\(O(n) ...

  7. bzoj1113: [Poi2008]海报PLA

    #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...

  8. bzoj 1113 海报pla

    Description N个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们. Input 第一行给出数字N,代表有N个矩形.N在[1,250000] 下面N行,每行给出矩形的长与宽.其值 ...

  9. [POI2008]海报PLA

    Description N个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们. Input 第一行给出数字N,代表有N个矩形.N在[1,250000] 下面N行,每行给出矩形的长与宽.其值 ...

随机推荐

  1. Windows安装 ANT

    apache-ant-1.7.1-bin.zip 下载地址:http://ant.apache.org/bindownload.cgi 第一步      解压apache-ant-1.7.1-bin. ...

  2. 使用JspStudy集成环境快速部署jsp项目

    1. 安装jdk 本人网盘资源:https://yunpan.cn/ckZLNbqxkDYYe (提取码:b5e8) 去jdk官网下载最新的jdk: http://www.oracle.com/tec ...

  3. C和指针笔记 3.8 static关键字

    当用于不同的上下文环境时,static关键字具有不同的意思. 当它用于函数定义时,或用于代码块之外的变量声明时,static关键字用于修改标识符的链接属性,从external改为internal,但标 ...

  4. 关于audio元素在实际项目中遇到的问题总结

    在ios高版本的微信浏览器下(ios10.0以上),audio标签如果添加autoplay属性的话.导致的问题是:通过二维码扫码第一次进入没有问题,第二次扫码进入之后直接卡死在loading页面. 解 ...

  5. Android studio导入eclipse项目混淆打包出错

    将proguard-android.txt复制一份重命名成proguard-rules.pro,且在build.gradle添加 release {             minifyEnabled ...

  6. use AP_VENDOR_PUB_PKG.Update_Vendor_Site_Public to u ORA-01722: invalid number in Package AP_VENDOR_PUB_PKG Procedure Update_Vendor_Site_Public

    ORA-01722: invalid number in Package AP_VENDOR_PUB_PKG Procedure Update_Vendor_Site_Public 发现此问题的经过: ...

  7. An Introduction to Interactive Programming in Python (Part 1) -- Week 2_2 练习

    #Practice Exercises for Logic and Conditionals # Solve each of the practice exercises below. # 1.Wri ...

  8. Activiti系列:是否可以让某些流程的信息写到历史表,而另外一些不写?

    一.起因     打算使用activiti的定时启动事件来定时启动流程,然后再在该流程中针对每个用户启动另外一个流程实例来计算每个用户的实时账单,系统的用户数一般是1000~2000(此处假设是200 ...

  9. SpringMVC类型转换、数据绑定详解[附带源码分析]

    目录 前言 属性编辑器介绍 重要接口和类介绍 部分类和接口测试 源码分析 编写自定义的属性编辑器 总结 参考资料 前言 SpringMVC是目前主流的Web MVC框架之一. 如果有同学对它不熟悉,那 ...

  10. TCP的三次握手和四次挥手

    置顶文章:<纯CSS打造银色MacBook Air(完整版)> 上一篇:<两个简单的Loading> 作者主页:myvin 博主QQ:851399101(点击QQ和博主发起临时 ...