4.2 8602 區間相交問題(必做)
4.2 8602 區間相交問題(必做)
時間限制:1000MS
記憶體限制:1000K
提交次數:1966
通過次數:468
題型: 程式設計題語言: G++;GCC;VC;JAVA
Description
給定x軸上n個閉區間,去掉儘可能少的閉區間,使剩下的閉區間都不相交。
注意:這裡,若區間與另一區間之間僅有端點是相同的,不算做區間相交。
例如,[1,2]和[2,3]算是不相交區間。
輸入格式
第一行一個正整數n(n<=50),表示閉區間數。
接下來n行中,每行2個整數,表示閉區間的2個整數端點。
輸出格式
輸出去掉的最少的閉區間數。
輸入樣例
3
1020
1015
1215
輸出樣例
2
提示
這個問題基本等同於書本的活動安排問題。
#include <iostream>
#include<math.h>
using namespace std;
class Position
{
public:
int start;
int _end;
};
int main()
{
intn;
cin>>n;
Position a[n];
for(int i=0;i<n;i++)
{
cin>>a[i].start;
cin>>a[i]._end;
}
int count=1;
int cur=0;
Position temp;
for(int i=0;i<n-1;i++)
{
for(int j=i+1;j<n;j++)
{
if(a[i]._end>a[j]._end)
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
for(int i=0;i<n;i++){
if(a[cur]._end<=a[i].start)
{
count++;
cur=i;
}
}
cout<<n-count<<endl;
return 0;
}