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的孤儿们都要好好的啊。