您的位置:首页 > 其它

FOJ 1230 区间相交问题

2008-08-08 10:30 239 查看
区间相交问题

Time Limit:1sMemory limit:32M
Accepted Submit:33Total Submit:78
★问题描述:
给定 x 轴上 n 个闭区间。去掉尽可能少的闭区间,使剩下的闭区间都不相交。
★算法设计:
对于给定的 n 个闭区间,计算去掉的最少闭区间数。
★数据输入:
对于每组输入数据,输入数据的第一行是正整数 n (1<=n<=40,000),表示闭区间数。接下来的 n 行中,每行有 2 个整数,分别表示闭区间的 2 个端点。
★结果输出:
输出计算出的去掉的最少闭区间数。
★输入示例
3
10 20
15 10
20 15
★输出示例
2

Original: FJ CFCS 2008

按照右端点从小到大的排
然后贪心
其实这也是在大牛的指导下完成的............

#include <iostream>

#include <algorithm>

using namespace std;

struct XML

{

int _strat_vale,_end_vlaue;

bool operator<(const XML&x) const

{

return _end_vlaue<x._end_vlaue;

}

}xml[40001];

int main()

{

int n,i,a,b,res,s;

while(cin>>n)

{

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

{

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

if(a>b)

a^=b,b^=a,a^=b;

xml[i]._strat_vale=a;

xml[i]._end_vlaue=b;

}

sort(xml+1,xml+1+n);

s=xml[1]._end_vlaue;

res=1;

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

if(s<xml[i]._strat_vale)

res++,s=xml[i]._end_vlaue;

cout<<n-res<<endl;

}

}

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