关闭

1113: [Poi2008]海报PLA

167人阅读 评论(0) 收藏 举报
分类:

1113: [Poi2008]海报PLA

Time Limit: 10 Sec  Memory Limit: 162 MB
Submit: 986  Solved: 648
[Submit][Status][Discuss]

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

Source

[Submit][Status][Discuss]

维护一个单调栈
#include<iostream>
#include<cstdio>
#include<queue>
#include<vector>
#include<bitset>
#include<algorithm>
#include<cstring>
#include<map>
#include<stack>
#include<set>
#include<cmath>
#include<ext/pb_ds/priority_queue.hpp>
using namespace std;

const int maxn = 3E5;

int n,Ans,h[maxn];

stack <int> s;

int main()
{
	#ifdef DMC
		freopen("DMC.txt","r",stdin);
	#endif
	
	cin >> n;
	for (int i = 1; i <= n; i++) {
		int x,y; scanf("%d%d",&x,&y);
		h[i] = y;
	}
	++n;
	for (int i = 1; i <= n; i++) {
		while (!s.empty()) {
			int now = s.top(); 
			if (now <= h[i]) break;
			s.pop(); ++Ans;
		}
		if (s.empty()) s.push(h[i]);
		else {
			int now = s.top();
			if (now == h[i]) continue;
			s.push(h[i]);
		}
	}
	cout << Ans;
	return 0;
}

0
0
查看评论

bzoj 1113: [Poi2008]海报PLA

1113: [Poi2008]海报PLA Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 910  Solved: 584 [Submit][Status][Dis...
  • clover_hxy
  • clover_hxy
  • 2016-05-02 22:49
  • 356

bzoj1113【poi2008】海报PLA

单调栈
  • AaronGZK
  • AaronGZK
  • 2015-10-12 23:23
  • 824

BZOJ 1113: [Poi2008]海报PLA

水题 记得当初考试的时候是用堆水过去的... 正解单调栈 #include using namespace std; int n,top,ans; int s[250001]; int main() { scanf("%d",&n); for...
  • qq_35878547
  • qq_35878547
  • 2017-07-15 18:23
  • 87

1113: [Poi2008]海报PLA 单调栈

今天看SAM好久还是没看懂。。傻逼题调一晚上。。真是不爽。。 赶紧屠几道水题。。可以发现如果出现 h1 < h2 > h3 且h1==h3时,我们可以用一个矩形来覆盖这一块,ans可以减一。所以我们可以维护一个单调栈。#include<bits/stdc++.h> usin...
  • Phenix_2015
  • Phenix_2015
  • 2016-01-11 22:57
  • 171

【BZOJ 1113】 [Poi2008]海报PLA

两种做法~ RMQ/单调栈~
  • Regina8023
  • Regina8023
  • 2015-02-26 21:17
  • 514

BZOJ 1113: [Poi2008]海报PLA 裸单调栈

DescriptionN个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们. Input第一行给出数字N,代表有N个矩形.N在[1,250000] 下面N行,每行给出矩形的长与宽.其值在[1,1000000000]2 1/2 Postering Output最少数量的海报数. Sa...
  • just_sort
  • just_sort
  • 2017-02-08 22:28
  • 249

bzoj 1113: [Poi2008]海报PLA 分治

题意N个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们. 1<=n<=250000分析看到题我的第一想法就是分治。。。 每次在区间[l,r]中找到一个最小的,然后左右递归即可。 复杂度由于要求rmq,就是nlogn的。 还有O(n)的做法,就是用单调栈来做。代码#i...
  • qq_33229466
  • qq_33229466
  • 2017-03-23 19:15
  • 148

bzoj 1113: [Poi2008]海报PLA(栈)

1113: [Poi2008]海报PLA Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1272  Solved: 870 [Submit][Status][Di...
  • Jaihk662
  • Jaihk662
  • 2018-01-20 22:17
  • 67

BZOJ 1113: [Poi2008]海报PLA 单调栈

Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1153 Solved: 785DescriptionN个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们.Input第一行给出数字N,代表有N个矩形.N在[1,250000] 下面N行...
  • NOIAu
  • NOIAu
  • 2017-07-27 20:25
  • 124

BZOJ 1113: Poi2008海报PLA(单调栈)

题目大意:用最少的纸张去覆盖矩形的楼。(此题与楼宽无关) 思路和上述几题差别不大。此题主要是排序后找相同高度。最后用总数减去即可。 #include #include #include #include #include #include #include #include #inclu...
  • Grit_ICPC
  • Grit_ICPC
  • 2016-01-04 21:30
  • 318
    个人资料
    • 访问:201196次
    • 积分:8915
    • 等级:
    • 排名:第2541名
    • 原创:733篇
    • 转载:1篇
    • 译文:0篇
    • 评论:16条
    文章分类
    最新评论