8 条题解

  • 2
    @ 2025-5-16 20:41:02
    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e5+10;
    int l,n,m,r,ans,a[N];
    bool check(int mid){
    	int sum=1;
    	int last=a[1];
    	for(int i=2;i<=n;i++){
    		if(a[i]-last>=mid){
    			sum++;
    			last=a[i];
    		}
    	}
    	return sum>=m;
    } 
    int main(){
    	cin>>n>>m;
    	for (int i=1;i<=n;i++)
    		cin>>a[i];
    	sort(a+1,a+n+1);
    	l=1,r=a[n]-a[1];
    	while(l<=r){
    		int mid=l+r>>1;
    		if(check(mid)){
    			ans=mid;
    			l=mid+1;
    		}
    		else
    			r=mid-1;
    			
    			
    	} 
    	cout<<ans;
    	return 0;
    }
    
    
    • 0
      @ 2024-12-1 19:41:25
      #include<bits/stdc++.h>
      using namespace std;
      const int N = 1e5+10;
      int n,m,l,r,a[N],ans;
      bool v[10005];
      bool check(int mid){
      	int sum = 1;
      	int last = a[1];
      	for(int i = 2;i <= n;i++){
      		if(last + mid<=a[i]){
      			last = a[i];
      			sum++;
      		}
      	}
      	return sum >= m;
      }
      int main(){
      	cin >> n >> m;
      	for(int i = 1;i <= n;i++)
      	    cin >> a[i];
      	sort(a+1,a+n+1);
      	l = 1;
      	r = a[n] - a[1];
      	while(l<=r){
      		int mid = (l+r)>>1;
      		if(check(mid)){
      			ans = mid;
      			l = mid+1;
      		}
      		else
      		    r = mid - 1;
      	}
      	cout << ans;
      	return 0;
      }
      
      • 0
        @ 2024-12-1 18:45:02
        
        ```#include <bits/stdc++.h>
        using namespace std;
        #define LL long long
        #define ull unsigned long long
        const int N=1e5+10;
        const int INF=0x3f3f3f3f;
        const double pi=3.1416;
        int n,m,a[N],l,r,ans;
        bool check(int mid){
        int sum=1;
        int last=a[1];
        for(int i=2;i<=n;i++){
        if(last+mid<=a[i]){
        last=a[i];
        sum++;
        }
        }
        return sum>=m;
        }
        int main(){
        cin>>n>>m;
        for(int i=1;i<=n;i++){
        cin>>a[i];
        }
        sort(a+1,a+n+1);
        l=1;
        r=a[n]-a[1];
        while(l<=r){
        int mid=(l+r)>>1;
        if(check(mid)){
        ans=mid;
        l=mid+1;
        }else{
        r=mid-1;
        }
        }
        cout<<ans<<endl;
        return 0;
        }
        
        
        • -1
          @ 2024-9-17 15:57:43
          /*
          int      %o/%lo(八进制) %d/%i/%ld/%li(十进制) %x/%lx(十六进制)[如标名为o/lo/d/i/lo/li/x/lx即输出为八进制/十进制/十六进制]
          longlong %lld
          float    %f/%e
          double   %lf/%le
          char     %c
          char[]   %s
          'a'=97
          'z'=122
          'A'=65
          'Z'=90
          '0'=48
          '9'=57
          */
          #include <iostream>
          #include <iomanip>
          #include <cmath>
          #include <cstdio>
          #include <cstring>
          #include <algorithm>
          #include <ctime>
          #include <limits>
          #include <assert.h>
          #include <stdlib.h>
          using namespace std;
          #define LL long long
          #define ull unsigned long long
          const int N=1e5+10;
          const int INF=0x3f3f3f3f;
          const double pi=3.1416;
          int n,m,a[N],l,r,ans;
          bool check(int mid){
          	int sum=1;
          	int last=a[1];
          	for(int i=2;i<=n;i++){
          		if(last+mid<=a[i]){
          			last=a[i];
          			sum++;
          		}
          	}
          	return sum>=m;
          }
          int main(){
          	cin>>n>>m;
          	for(int i=1;i<=n;i++){
          		cin>>a[i];
          	}
          	sort(a+1,a+n+1);
          	l=1;
          	r=a[n]-a[1];
          	while(l<=r){
          		int mid=(l+r)>>1;
          		if(check(mid)){
          			ans=mid;
          			l=mid+1;
          		}else{
          			r=mid-1;
          		}
          	}
          	cout<<ans<<endl;
          return 0;
          }
          
          • -1
            @ 2024-7-31 9:55:06

            #include

            #include

            #include

            #include

            #include

            #include

            using namespace std;

            const int N = 1e6 +10;

            const int INF=0x3f3f3f;

            int ans,l = 1,r,L,n,k,a[N];

            bool check(int mid){

            int sum = 1;

            int last = a[1];

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

            if(a[i] - last >= mid){

            sum ++;

            last = a[i];

            }

            }

            return sum >= k;

            } int main(){

            cin>>n>>k;

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

            cin>>a[i];

            sort(a+1,a+n+1);

            r = a[n] - a[1];

            while(l<=r){

            int mid = l + r >>1;

            if(check(mid)){

            ans = mid;

            l = mid + 1;

            }

            else

            r = mid - 1;

            }

            cout<<ans;

            }

            • -1
              @ 2024-6-2 18:01:15
              #include<bits/stdc++.h>
              using namespace std;
              const int N=1e5+10;
              int n,m,a[N],l,r,ans;
              bool check(int mid){
              	int sum=1,l=a[1];
              	for(int i=2;i<=n;i++){
              		if(a[i]>=l+mid){
              			sum++;
              			l=a[i];
              		}
              	}
              	return sum>=m;
              }
              int main(){
              	cin>>n>>m;
              	for(int i=1;i<=n;i++){
              		cin>>a[i];
              	}
              	sort(a+1,a+n+1);
              	l=1;
              	r=a[n];
              	while(l<=r){
              		int mid=l+r>>1;
              		if(check(mid)){
              			ans=mid;
              			l=mid+1;
              		}else{
              			r=mid-1;
              		}
              	}
              	cout<<ans;
                  return 0;
              }
              
              
              • -1
                @ 2024-6-2 18:00:26
                #include <bits/stdc++.h>
                using namespace std;
                const int N = 1e5 + 10;
                int n, m;
                int a[N], l, r, mid, ans;
                bool check(int mid){
                	int sum = 1;
                	int last = a[1];
                	for(int i = 2 ; i <= n ; i++){
                		if(a[i] >= last + mid){
                			sum++;
                			last = a[i];
                		}
                	}
                	return sum >= m;
                }
                int main(){
                	cin >> n >> m;
                	for(int i = 1 ; i <= n ; i++) cin >> a[i];
                	sort(a + 1 , a + n + 1);
                	l = 1;
                	r = a[n];
                	while(l <= r){
                		int mid = l + r >> 1;
                		if(check(mid)){
                			ans = mid;
                			l = mid + 1;
                		}
                		else r = mid - 1;
                	}
                	cout << ans << endl;
                	return 0;
                }
                
                • -1
                  @ 2024-6-2 17:59:29

                  #include #include #include #include #include #include #include #include using namespace std; const int N=1e5+10; const int INF=0x3f3f3f3f; int n,m,a[N],l,r,ans; bool check(int mid) { int sum=1,last=a[1]; for(int i=2;i<=n;i++) { if(a[i]-last>=mid) { sum++; last=a[i]; } } return sum>=m; } int main(){ cin>>n>>m; for(int i=1;i<=n;i++) cin>>a[i]; sort(a+1,a+n+1); l=1,r=a[n]; while(l<=r) { int mid=l+r>>1; if(check(mid)) { ans=mid; l=mid+1; } else r=mid-1; } cout<<ans; return 0; }

                  • 1

                  信息

                  ID
                  357
                  时间
                  1000ms
                  内存
                  512MiB
                  难度
                  7
                  标签
                  递交数
                  448
                  已通过
                  118
                  上传者