2 条题解

  • 1
    @ 2025-11-16 15:01:50

    #include<iostream>

    #include<algorithm>

    using namespace std;

    #define ll long long

    int main()

    {

    ios::sync_with_stdio(0);

    cin.tie(0);

    cout.tie(0);

    ll n,k,sum=0,maxn=-1;

    cin>>n>>k;

    ll a[n+10];

    for(int i=1;i<=n;i++){

    cin>>a[i];

    maxn=max(maxn,a[i]);//先找到最大值

    }

    sort(a+1,a+1+n);//从小到大排序

    for(int i=n-1;i>0;i--){

    if(a[i]<=maxn-k){

    sum++;

    maxn=a[i];//倒叙判断第一个满足条件的数

    }

    }

    cout<<sum+1<<"\n";//+1(最大值)

    return 0;

    }

    • 0
      @ 2025-11-16 23:31:29
      #include <iostream>
      #include <algorithm>
      
      using namespace std;
      
      #define i64 long long
      
      const i64 N=1e5+5;
      
      i64 a[N]={0};
      
      i64 n,k;
      
      void solve(){
      	cin>>n>>k;
      	for(i64 i=1;i<=n;i++){
      		cin>>a[i];
      	}
      	sort(a+1,a+1+n);
      	i64 cnt=0;
      	i64 ls=-1e9-10;
      	for(i64 i=1;i<=n;i++){
      		if(a[i]-ls>=k){
      			cnt++;
      			ls=a[i];
      		}
      	}
      	cout<<cnt<<'\n';
      }
      
      signed main() {
          ios::sync_with_stdio(false);
          cin.tie(nullptr);
          cout.tie(nullptr);
      
          i64 t=1;
      //    cin>>t;
      
          while(t--){
              solve();
          }
      
          return 0;
      }
      
      • @ 2025-11-16 23:32:47

        sort排序,贪心模拟,签到

    • 1

    信息

    ID
    1202
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    (无)
    递交数
    80
    已通过
    27
    上传者