9 条题解

  • 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
      @ 2026-3-27 16:05:35
      #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;
      }
      
      • 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;
          }
          
          
          • 0
            @ 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-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 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
                    标签
                    递交数
                    596
                    已通过
                    151
                    上传者