题目:
(1)问题描述:
给定x 轴上n 个闭区间。去掉尽可能少的闭区间,使剩下的闭区间都不相交。
(2)编程任务:
给定n 个闭区间,编程计算去掉的最少闭区间数。
(3)数据输入:
第一行是正整数n,表示闭区间数。接下来的n行中,每行有2 个整数,分别表示闭区间的2个端点。
(4)结果输出:
计算出的去掉的最少闭区间数。
(5)输入示例
3
10 20
10 15
20 15
(6)输出文件示例
2代码:
#include <bits/stdc++.h>
using namespace std;
const int MAXN=100;
struct node
{
int l,r;
}a[MAXN];
bool cmp(node a,node b)
{
return a.r<b.r;
}
int main()
{
int n;
while(cin>>n)
{
for(int i=0;i<n;i++)
{
int u,v;
cin>>u>>v;
a[i].l=min(u,v);
a[i].r=max(u,v);
}
sort(a,a+n,cmp);
int ans=1,tmp=a[0].r;
for(int i=1;i<=n;i++)
if(a[i].l>=tmp)
{
ans++;
tmp=a[i].r;
}
cout<<ans<<endl;
}
return 0;
}