题意:

给你一个建筑物群的轮廓,求该建筑物群最少由几栋楼房组成(楼房是矩形)

贪心好题——poj3044_sed

思路:贪心

一看数据范围怎么大,搜索神马的就算了

从后往前扫,将符合的都标记掉(注意高度为0的没有楼房)

贪心好题——poj3044_搜索_02贪心好题——poj3044_i++_03View Code
#include<stdio.h>
#include<string.h>
const int N=50009;

struct data
{
int x,y;
}s[N];
bool used[N];

int main()
{
int n,w;
while(scanf("%d%d",&n,&w)!=EOF)
{
int i,j;
for(i=1;i<=n;i++)
{
scanf("%d%d",&s[i].x,&s[i].y);
used[i]=0;
}

int add=0;
for(i=n;i>=1;i--)
{
if(s[i].y==0)continue;
if(used[i]==1)continue;

for(j=i-1;j>=1;j--)
{
if(s[i].y<=s[j].y)
{
if(s[i].y==s[j].y)
used[j]=1;
}
else{
break;
}
}
add++;
}

printf("%d\n",add);
}
}