1. 程式人生 > 其它 >【unity】觀察者模式

【unity】觀察者模式

題目連結 https://www.luogu.com.cn/problem/P1803

非要整些花裡胡哨的題目和題意。。。。。。。

經典入門的貪心

因為要參加儘可能多的比賽,所以將結束時間排序,下一場比賽取結束時間早且與上一場比賽時間不衝突的。


放AC程式碼

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 struct px
 4 {
 5     int a;//開始時間
 6     int b;//結束時間
 7 }x[1000050];
 8 bool cmp(px x,px y)//按結束時間排序
 9 {
10     return x.b<y.b;
11 } 12 int main() 13 { 14 int n,sum=1,mi; 15 cin>>n; 16 for(int i=1;i<=n;i++) 17 cin>>x[i].a>>x[i].b; 18 sort(x+1,x+n+1,cmp); 19 mi=x[1].b;//記錄第一個值 20 int j=1; 21 while(j<=n) 22 { 23 j++; 24 if(x[j].a>=mi) 25 {//找到符合要求的比賽,記錄,參加
26 sum++; 27 mi=x[j].b; 28 } 29 } 30 cout<<sum; 31 return 0; 32 }