8 solutions
-
0
题解
这道题呢,需要找出时间不冲突的最多活动数,对活动结束时间进行排序,然后判断前一个活动的结束时间是不是小于后一个活动的开始时间。在排序中就已经确定了第一个活动,所以计数的时候从1开始,注意记录下一个活动的下标。
代码
#include<bits/stdc++.h> using namespace std; struct node{ int b,e; }a[1005]; bool com(node a,node b){ return a.e<b.e; } int main(){ std::ios::sync_with_stdio(false); int n,sum=1,ll=0; cin>>n; for(int i=0;i<n;i++) cin>>a[i].b>>a[i].e; sort(a,a+n,com); for(int i=1;i<n;i++){ if(a[i].b>=a[ll].e){ ll=i; sum++; } } cout<<sum<<endl; return 0; }
Information
- ID
- 91
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 6
- Tags
- # Submissions
- 201
- Accepted
- 61
- Uploaded By