nyoj586||poj2456 二分+贪心

来源:互联网 发布:ifconfig修改mac地址 编辑:程序博客网 时间:2024/04/30 09:32

完全看不懂题意。。。。百度搜搜才看懂题意  然后就参考代码了尴尬 和yougth的最大化()nyoj914差不多的方法 二分+贪心

#include <stdio.h>#include <algorithm>using namespace std;int c,a[100005],n;bool judge(int k){int p=a[0],cnt=1;//也就这里注意点 从1开始 自己想想为啥for(int i=1;i<n;i++){if(a[i]-p>=k)cnt++,p=a[i];if(cnt>=c)return true;}return false;}int bin_search(int right)//步步逼近最小值。{int left=0,mid;while(left<=right){mid=(left+right)/2;if(judge(mid))left=mid+1;elseright=mid-1;}return left-1;}int main(){while(scanf("%d %d",&n,&c)!=EOF){for(int i=0;i<n;i++)scanf("%d",&a[i]);sort(a,a+n);//从小到大排序printf("%d\n",bin_search(a[n-1]-a[0]));//a[n-1]-a[0]最大差值}return 0;}


1 0