本文主要是介绍【SPOJ】【AGGRCOW】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
总结:函数之间存在依赖。 然后一处修改了但是忘记修改另外的一处了。。。
#include <iostream>
#include <cstring>
#include <cmath>
#include <queue>
#include <stack>
#include <list>
#include <map>
#include <set>
#include <string>
#include <cstdlib>
#include <cstdio>
#include <algorithm>
using namespace std;int Case;
int n,m;
int arr[1000010];
bool ok(int interv)
{int last = 1;arr[0] = 0;//cout << arr[last - 1] << endl;for(int i=2;i<=m;i++){int cur = last + 1;while(cur <= n && arr[cur] - arr[last] < interv)cur ++;if(cur > n){return false;}last = cur;}return true;
}
int main()
{//freopen("1.txt","r",stdin);scanf("%d",&Case);while(Case --){memset(arr,0,sizeof(arr));scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){scanf("%d",&arr[i]);}arr[0] = -0x3f3f3f3f;sort(arr,arr+n+1);int ans = -1;int low = 0;int high = 1000000000;while(low <= high){int mid = (low + high) / 2;if(ok(mid)){ans = mid;low = mid + 1;}else{high = mid - 1;}}// cout << m << endl;arr[0] = 0;// cout << ok(7) << endl;printf("%d\n",ans); }
}
这篇关于【SPOJ】【AGGRCOW】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!