洛谷 P1803 凌亂的yyy / 線段覆蓋
阿新 • • 發佈:2021-11-17
題目背景
快 noip 了,yyy 很緊張!
題目描述
現在各大 oj 上有nn個比賽,每個比賽的開始、結束的時間點是知道的。
yyy 認為,參加越多的比賽,noip 就能考的越好(假的)。
所以,他想知道他最多能參加幾個比賽。
由於 yyy 是蒟蒻,如果要參加一個比賽必須善始善終,而且不能同時參加22個及以上的比賽。
輸入格式
第一行是一個整數nn,接下來nn行每行是22個整數a_{i},b_{i}ai,bi(a_{i}<b_{i}ai<bi),表示比賽開始、結束的時間。
輸出格式
一個整數最多參加的比賽數目。
輸入輸出樣例
輸入 #13 0 2 24 1 3
輸出 #1
2
分析
貪右端點
程式碼
#include<bits/stdc++.h> using namespace std; const int N=1e6+5; int n; struct Time { int a; int b; }; Time t[N]; bool cmp(Time &aa,Time &bb) { return aa.b<bb.b; } int ans; int main() { int n; cin>>n; for(int i=1;i<=n;i++) { cin>>t[i].a>>t[i].b; } sort(t+1,t+n+1,cmp); int r=0; for(int i=1;i<=n;i++) { if(t[i].a<r) continue;//每次記錄一下上一個的右端點,看這次左端帶你有沒有重合 r=t[i].b; ans++; } cout<<ans<<endl; return 0; }