您的位置:首页 > 其它

区间相交问题(贪心)

2011-10-22 09:29 253 查看
/*日期:2011-10-22

作者:xiaosi

题目: 区间相交问题(贪心)

*/

#include<iostream>

#include<cstdio>

#include<stdlib.h>

using namespace std;

struct Region

{

int left;

int right;

}R[40001];

int cmp(const void *a,const void *b)

{

struct Region *c = (Region *)a;

struct Region *d = (Region *)b;

return c->right - d->right;

}

int main()

{

int n;

while(scanf("%d",&n)!=EOF)

{

int i,a,b,count=1,start;

for(i=0;i<n;i++)

{

scanf("%d %d",&a,&b);

if(a>b)

{

R[i].right=a;

R[i].left=b;

}

else

{

R[i].right=b;

R[i].left=a;

}

}

qsort(R,n,sizeof(R[0]),cmp);

start=R[0].right;

for(i=1;i<n;i++)

{

if(start<R[i].left)

{

start=R[i].right;

count++;

}

}

printf("%d\n",n-count);

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: