POJ 1230 Pass-Muraille 贪心
来源:互联网 发布:公安大数据应用现状 编辑:程序博客网 时间:2024/06/09 19:20
Pass-Muraille
Time Limit: 1000MS Memory Limit: 65536KB 64bit IO Format: %lld & %llu
Submit
Status
Description
In modern day magic shows, passing through walls is very popular in which a magician performer passes through several walls in a predesigned stage show. The wall-passer (Pass-Muraille) has a limited wall-passing energy to pass through at most k walls in each wall-passing show. The walls are placed on a grid-like area. An example is shown in Figure 1, where the land is viewed from above. All the walls have unit widths, but different lengths. You may assume that no grid cell belongs to two or more walls. A spectator chooses a column of the grid. Our wall-passer starts from the upper side of the grid and walks along the entire column, passing through every wall in his way to get to the lower side of the grid. If he faces more than k walls when he tries to walk along a column, he would fail presenting a good show. For example, in the wall configuration shown in Figure 1, a wall-passer with k = 3 can pass from the upper side to the lower side choosing any column except column 6.
Given a wall-passer with a given energy and a show stage, we want to remove the minimum number of walls from the stage so that our performer can pass through all the walls at any column chosen by spectators.
Input
The first line of the input file contains a single integer t (1 <= t <= 10), the number of test cases, followed by the input data for each test case. The first line of each test case contains two integers n (1 <= n <= 100), the number of walls, and k (0 <= k <= 100), the maximum number of walls that the wall-passer can pass through, respectively. After the first line, there are n lines each containing two (x, y) pairs representing coordinates of the two endpoints of a wall. Coordinates are non-negative integers less than or equal to 100. The upper-left of the grid is assumed to have coordinates (0, 0). The second sample test case below corresponds to the land given in Figure 1.
Output
There should be one line per test case containing an integer number which is the minimum number of walls to be removed such that the wall-passer can pass through walls starting from any column on the upper side.
Sample Input
2
3 1
2 0 4 0
0 1 1 1
1 2 2 2
7 3
0 0 3 0
6 1 8 1
2 3 6 3
4 4 6 4
0 5 1 5
5 6 7 6
1 7 3 7
Sample Output
1
1
Hint
Walls are parallel to X.
Source
Tehran 2002 Preliminary
//逐列检查 在每次需要拆墙的时候都拆右边影响最大的(即从该列开始长度最长的)墙 贪心#include<stdio.h>#include<string>#include<cstring>#include<queue>#include<algorithm>#include<functional>#include<vector>#include<iomanip>#include<math.h>#include<iostream>#include<sstream>#include<stack>#include<set>#include<bitset>using namespace std;int pic[105][105];int T,N,K,righ,down,X1,Y1,X2,Y2;int main(){ cin.sync_with_stdio(false); cin>>T; while(T--) { righ=0; down=0; memset(pic,0,sizeof(pic)); cin>>N>>K; for (int i=1; i<=N; i++) { cin>>X1>>Y1>>X2>>Y2; righ=max(righ,max(X1,X2)); down=max(down,Y1); int len=max(X1,X2)-min(X1,X2)+1; for (int i=min(X1,X2); i<=max(X1,X2); i++) pic[i][Y1]=max(pic[i][Y1],len--); } int Ans=0; for (int i=0; i<=righ; i++) { int temp=0; for (int j=0; j<=down; j++) if (pic[i][j]) temp++; while (temp>K) { int maxl=0,pos=0; for (int k=0; k<=down; k++) if (pic[i][k]>maxl) { maxl=pic[i][k]; pos=k; } int p=pic[i][pos]; for (int d=0; d<p; d++) pic[i+d][pos]=0; temp--; Ans++; } } cout<<Ans<<endl; } return 0;}
- poj 1230 Pass-Muraille( 贪心 )
- poj 1230 Pass-Muraille 贪心
- POJ 1230 Pass-Muraille 贪心
- POJ 1230 Pass-Muraille 贪心
- (贪心5.1.1)POJ 1230 Pass-Muraille
- POJ 1230 Pass-Muraille (贪心) 解题报告
- POJ 1230 Pass-Muraille (贪心)
- POJ 1230 Pass-Muraille (贪心)
- POJ 1230 Pass-Muraille
- poj 1230 Pass-Muraille
- poj 1230 Pass-Muraille
- POJ-1230-Pass-Muraille
- poj 1230 Pass-Muraille
- POJ 1230 Pass-Muraille
- POJ-1230 Pass-Muraille
- POJ 1230 Pass-Muraille
- POJ 1230 Pass-Muraille 笔记
- Pass-Muraille
- POJ 1845 Sumdiv(逆元的应用)
- Idea15 常用设置:JDK、SVN
- 2016 多校 Multi-University Training Contest 6 A Simple Chess
- 303. Range Sum Query - Immutable*
- 数据库事务的几种配置方式
- POJ 1230 Pass-Muraille 贪心
- mysql授权ip访问
- POJ 1057 FILE MAPPING
- sg函数_____S-Nim( poj 2960 )
- iOS 开发之静态库.a和动态库详解
- gdb的简单使用
- 10049---java-Transient关键字、Volatile关键字介绍和序列化、反序列化机制、单例类序列化
- java 从本地拿取图片给前端显示
- C++学习笔记 1st —— 让我们来看看cout输出吧