MT3021 拦截罪犯

简介: MT3021 拦截罪犯

1c64df91a30848c3bec61fa78a50bb80.jpg

7982216da5014558bc721b8a15b9576f.jpg

思路:用二分,每次二分间距,判断需要的组数是否>k。

 
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int L, n, k;
int a[N];
 
bool check(int p)
{ // 看此时的间距所用的警力数满不满足<=k
    int cnt = 0;
    for (int i = 2; i <= n; i++)
    {
        int temp = a[i] - a[i - 1];
        int a1 = temp / p; // 需要多少组
        int a2 = temp % p;
        if (a1 > 0)
        {
            if (a2 > 0)
            {
                cnt += a1;
            }
            else
            { // 无余数,例4/2=2,只需2-1=1组即可
                cnt += a1 - 1;
            }
        }
    }
    if (cnt > k)
        return false;
    return true;
}
 
int main()
{
    cin >> L >> n >> k;
    for (int i = 1; i <= n; i++)
    {
        cin >> a[i];
    }
    sort(a + 1, a + n + 1);
    int l = 1, r = L, mid;
    while (l <= r)
    {
        mid = (l + r) / 2;
        if (check(mid))
        {
            r = mid - 1;
        }
        else
            l = mid + 1;
    }
    cout << l;
}


下面是错误代码:(错误原因见评论~)

 
#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int l, n, k;
priority_queue<int, vector<int>, less<int>> q;//大根堆
int b[N];
int main()
{
    cin >> l >> n >> k;
    for (int i = 1; i <= n; i++)
    {
        cin >> b[i];
    }
    sort(b + 1, b + n + 1); // 升序
    for (int i = 2; i <= n; i++)
    {
        q.push(b[i] - b[i - 1]);
    }
    for (int i = 0; i < k; i++)
    {
        int pp = q.top();
        q.pop();
        int uu = pp / 2;
        q.push(uu);
        q.push(pp - uu);
    }
    cout << q.top();
}


相关文章
|
3月前
|
监控 安全 数据安全/隐私保护
|
安全 网络安全 数据安全/隐私保护
防止黑客利用wifi攻击自己方法总结
如今手机上网用户日益增加,伴随着上网的需求所以很多用户会选择免费的wifi网络 可是黑客却屡次的进犯,我们也并非全无方法。请看以下7个注意事项:
|
SQL 安全 搜索推荐
如何处理网站被植入恶意的一些代码导致的被机房拦截提示
如何处理网站被植入恶意的一些代码导致的被机房拦截提示
285 0
如何处理网站被植入恶意的一些代码导致的被机房拦截提示
|
JavaScript 安全 前端开发
Websense称3万多合法网站被注入恶意代码
  北京时间6月1日消息,据国外媒体报道,安全研究人员日前称,大约有3万多个来自企业、政府机构和其它组织的网站被注入恶意代码,当用户访问这些网站时,会被安装恶意软件。   据网络防护公司Websense安全主管史蒂芬·坎尼特(Stephan Chenette)表示,黑客利用一个能导致SQL注入的应用程序,在这些网站的前端页面中植入恶意javascript代码。
766 0
|
Web App开发 安全 网络安全
墨者安全分享:CC攻击的变异品种--慢速攻击
对网络安全有过一定了解的人肯定都听过DDOS攻击和CC攻击,DDOS主要针对IP攻击,CC攻击主要是用来攻击网页的,两者都是通过控制大量僵尸网络肉鸡流量对目标发起攻击的,对于没有高防服务的企业来说简直就是灭顶之灾。
1738 0
|
定位技术 网络安全