noip模拟【ping】

 70:很容易想到的是枚举每一个可能的答案来判断是否可行,取最优即可,贪心选择。

100:满足题目条件的这个距离是满足单调性的。如果x不行,那么大于x的距离都不行,二分答案。

学会运用二分,by ws_yzy

找到二分对象进行二分即可。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int A,B,a[10010];
 4 int main()
 5 {
 6     scanf("%d %d",&A,&B);
 7     for(int i = 1;i < = A;i++)    scanf("%d",&a[i]);
 8     sort(a+1,a+n+1);
 9     int l = 1,r = a[n];
10     while(l<=r)
11     {
12         int mid = l+r>>1;
13         int k = 1;    
14         for(int i =2;i<=n;i++)
15             if(a[i] >= a[k] + mid){
16                 k = i;
17                 tot++:
18             }
19             tot>=B?(l=mid+1):(r=mid-1);
20     }
21     cout<<mid;
22     return 0;
23 }
G102的孤儿们都要好好的啊。
原文地址:https://www.cnblogs.com/ve-2021/p/9502407.html