2025-09-28 22:25:50
发布于:广东
???
#include<bits/stdc++.h>
using namespace std;
struct whh{
int b,e;
}a[1000000];
bool cmp(whh x,whh y){
return x.e<y.e;
}
int main(){
int n,cnt=1;
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].b>>a[i].e;
}
sort(a+1,a+n+1,cmp);
int o=a[1].e;
for(int i=2;i<=n;i++){
if(a[i].b>=o){
cnt++;
o=a[i].e;
}
}
cout<<cnt;
return 0;
}
有人能指点一下吗???
全部评论 2
#include <algorithm>
#include <iostream>
using namespace std;
// 定义结构体,参数为开始时间和结束时间
struct node {
int s, e;
} a[1010];
// 排序,将结束时间早的排序在前面
bool cmp(node a, node b) {
return a.e < b.e;
}
int main() {
while(1){
int n;
cin >> n;
if(n==0)break;
for (int i = 0; i < n; i++) {
cin >> a[i].s >> a[i].e;
}
sort(a, a + n, cmp);
// 定义变量为活动结束时间,以第一个数结尾作为活动结束时间
int last = a[0].e;
// 活动的参加数量
int num = 1;
for (int i = 1; i < n; i++) {
// 当前活动的开始时间是大于等于活动结束时间
if (a[i].s >= last) {
// 活动选取数量+1,更新活动结束时间
num++;
last = a[i].e;
}
}
// 输出活动的参加数量
cout << num << endl;
}return 0;}
应该这么写
2026-10-10 来自 山东
13
2026-10-11 来自 浙江
0





























有帮助,赞一个