概述
这题就是给出N个点,然后让你把C头牛分别放进去,它们之间距离(平均)越大越好,因为让你输出的是它们之间距离最小的长度。
#include<math.h>
#include<algorithm>
#include<time.h>
#include<stdlib.h>
#include<iostream>
#include<string.h>
#include<map>
#include<list>
#include<string>
#include<queue>
#include<set>
#include<vector>
#include<stack>
#include<limits>
#define re register
#define iosgo() std::ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define run(i,n) for (int i = 1; i <= n; i++)
#define cin std::cin
#define cout std::cout
#define ll long long
#define endl "n"
using namespace std;
typedef pair<int, int>pll;
const int N = 2e5 + 10;
pll cc[N];
int h[150][150];
ll x[N], y[N], s[N];
ll gcd(ll a, ll b)
{
return b ? gcd(b, a % b) : a;
}
int a[N];
int n, c;
bool find(int x)
{
int ans = 1, t = a[0];
for (int i = 1; i < n; i++)
{
if (a[i] - t >= x)
{
ans++;
t = a[i];
if (ans >= c)
{
return true;
}
}
}
return false;
}
int solve()
{
int l = 0, r = a[n-1] - a[0], mid;
while (l <= r)
{
mid = (l + r) / 2;
if (find(mid))
{
l = mid + 1;
}
else
{
r = mid - 1;
}
}
return l - 1;
}
int main()
{
iosgo();
cin >> n >> c;
for (int i = 0; i < n; i++)
{
cin >> a[i];
}
sort(a , a + n );
cout << solve();
}
最后
以上就是忧伤手链为你收集整理的Aggressive cows (尺取)的全部内容,希望文章能够帮你解决Aggressive cows (尺取)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复