AGC011 A - Airport Bus(贪心)

题意:

在这里插入图片描述

解法:

将时间从小到大排序,显然选择相邻一段最优,
从左开始贪心选择,当时间差>K或者人数超过C则再来一辆车.

code:

#include <bits/stdc++.h>
#define int long long
#define PI pair<int,int>
using namespace std;
const int maxm=2e6+5;
int a[maxm];
int n,c,k;
void solve(){
    
    
    cin>>n>>c>>k;
    for(int i=1;i<=n;i++){
    
    
        cin>>a[i];
    }
    sort(a+1,a+1+n);
    int ans=0;
    int st=-1e18;
    int cnt=0;
    for(int i=1;i<=n;i++){
    
    
        if(a[i]>st+k||cnt+1>c){
    
    
            ans++;
            cnt=1;
            st=a[i];
        }else{
    
    
            cnt++;
        }
    }
    cout<<ans<<endl;
}
signed main(){
    
    
    ios::sync_with_stdio(0);
    solve();
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_44178736/article/details/114842922