送分题,贪心著名版子
2024-05-14 21:53:13
发布于:浙江
7阅读
0回复
0点赞
很简单啊,基本不会错我不会告诉你我少打等号WA了一次
思路比实现难度大一捏捏,要求先做一次排序(按结束时间从小排到大),之后一旦开始时间比当前时间大,就选它,然后增加计数器并更新末尾时间
三,二,一上代码!!!
#include<bits/stdc++.h>
using namespace std;
struct Node{int begin,endd;}a[1005];
bool cmp(Node x,Node y){return x.endd<y.endd;}
int main() {
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
int n,last=0,sum=0;
cin>>n;
for(int i=1;i<=n;++i)cin>>a[i].begin>>a[i].endd;
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;++i)
if(a[i].begin>=last){
last=a[i].endd,sum++;
}
cout<<sum<<endl;
}//进行了"一定的"压行,应该可以直接CTRL+SHIFT+A恢复原型
这里空空如也
有帮助,赞一个