Code change the World.
阿新 • • 發佈:2019-01-08
題目:
(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; }