P8889 [入门赛 #7] 狠狠地切割 (Hard Version)

简介: P8889 [入门赛 #7] 狠狠地切割 (Hard Version)

62bee44e2dc24e5d8f527be3acdc2ab7.jpg


8056155b5e1c4ba2910815a278a90c81.jpg

用b切割a时,对每一个ai都找bj作切割,找bj使用二分

代码:

#include <bits/stdc++.h>
using namespace std;
const long long int maxn = 500050;
long long int a[maxn];
long long int n, x, m, sum;
long long int b[maxn];
bool check(long long int k)
{ // ai是否在b中
    long long int l = 1, r = m, mid;
    while (l <= r)
    {
        mid = (l + r) / 2;
        if (k < b[mid])
        {
            r = mid-1;
        }
        else if (k > b[mid])
        {
            l = mid + 1;
        }
        else
            return 1;
    }
    return 0;
}
 int main()
{
    cin >> n >> m;
    for (long long int i = 1; i <= n; i++)
    {
        scanf("%lld", &a[i]);
    }
    for (long long int i = 1; i <= m; i++)
    {
        scanf("%lld", &b[i]);
    }
    long long int ans = 0;
    sort(b + 1, b + m + 1);
    //二分b前要先对b排序
    for (long long int i = 1; i <= n; i++)
    {
        if (check(a[i]))
        { // 能否被切割
            a[i] = 0;
        }
    }
    long long int flag = 0;
    for (long long int i = 1; i <= n; i++)
    {
        if (a[i] != 0 && flag == 0)
        {
            flag = 1;
            ans++;
        }
        if (a[i] == 0 && flag == 1)
        {
            flag = 0;
        }
    }
    cout << ans;
}


相关文章
|
2月前
每周一坑--2048
每周一坑--2048
ACM刷题之路(十四)逆元取模 Travel along the Line
ACM刷题之路(十四)逆元取模 Travel along the Line
Codeforces1486 C2.Guessing the Greatest (hard version)(交互题+奇怪的二分)
Codeforces1486 C2.Guessing the Greatest (hard version)(交互题+奇怪的二分)
39 0
PAT (Basic Level) Practice (中文)- 1052 卖个萌(20 分)
PAT (Basic Level) Practice (中文)- 1052 卖个萌(20 分)
91 0
|
NoSQL
[CTF]攻防世界Simple-check-100题解(GDB)
[CTF]攻防世界Simple-check-100题解(GDB)
275 0
[CTF]攻防世界Simple-check-100题解(GDB)
|
Java Android开发
文件切割合并器&nbsp;&nbsp;收获感悟
1 学会 eclipse 到处jar 然后用 jsmooth-0.9.9-7 (在我网盘的下载地址:http://dl.dbank.com/c0ced6n4zq)将 jar 转成exe 2 通过Java 的官方Demo找到了 导出文件和生成的exe 程序图标不支持(只有将应用程序和图标放在同一 文 件夹下才可显示)的原因
67 0
|
测试技术 C#
AY写给国人的教程- VS2017 Live Unit Testing[1/2]-C#人爱学不学-aaronyang技术分享
原文:AY写给国人的教程- VS2017 Live Unit Testing[1/2]-C#人爱学不学-aaronyang技术分享 谢谢大家观看-AY的 VS2017推广系列 Live Unit Testing AY当前VS的版本---- 15.
1047 0
|
测试技术 C# C++
AY写给国人的教程- VS2017 Live Unit Testing[2/2]-C#人爱学不学-aaronyang技术分享
原文:AY写给国人的教程- VS2017 Live Unit Testing[2/2]-C#人爱学不学-aaronyang技术分享 谢谢大家观看-AY的 VS2017推广系列 Live Unit Testing 目前支持的框架 AY当前VS的版本---- 15.7.1 打开设置 如果你的解决方案,不包括单元测试的项目,你单击了实时单元测试,虽然菜单栏会有停止,暂停,但实际不会运行的。
1163 0