好久没写blog了嗷。 挑战程序设计竞赛上二分的标题就是——不光是查找值。所以在这里总结一下上一周的二分三分训练。 零、有序数组中查找某个值(不说了) 一、最大化最小值 POJ2456、POJ3258 这两个题非常像嗷,稍微改下代码就可以了嗷。 我先做的3258. 2456: 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 using namespace std; 5 #define maxn 50050 6 int l,n,m; 7 int dis[maxn]; 8 9 bool C(int x){ 10 int last=0; 11 for(int i=1;i<m;i++){//m-1次 12 int cur=last+1; 13 while(cur<n&&dis[cur]-dis[last]<x) 14 cur++; 15 if(cur==n) return 0; 16 17 last=cur; 18 } 19 return 1; 20 } 21 int main(){ 22 scanf("%d%d",&n,&m); 23 for(int i=0;i<n;i++) scanf("%d",dis+i); 24 sort(dis,dis+n); 25 26 int le=0,ri=dis[n-1