Min Difference 二分优化

2023-11-18

题目链接
在这里插入图片描述
暴力的时间复杂度是O( n 2 n^2 n2),只能在查询的时候优化一下,可以手写一个左闭右开的二分,也可以使用库函数 l o w e r lower lower_ b o u n d bound bound,时间复杂度变成 O ( n l o g n ) O(nlogn) O(nlogn)

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <string>
#include <set>
using namespace std;
const int maxn = 2e5 + 7;
int a[maxn], x;
set<int> s;
int main()
{
    int n, m;
    scanf(" %d %d",&n,&m);
    for(int i = 0; i < n; i++) 
        scanf(" %d",&a[i]);
    sort(a,a+n);
    int ansm = 0x3f3f3f3f, t;
    for(int i = 0; i < m; i++) 
    {
        scanf(" %d",&x);
        int idx = lower_bound(a, a + n, x) - a;
        for(int j = idx - 1; j <= idx; j++)
            if(j < n && j >= 0) ansm = min(ansm,abs(x-a[j]));
    }
    printf("%d\n",ansm);
    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Min Difference 二分优化 的相关文章

  • P1102 A-B 数对

    include
  • 洛谷借教室

    之前写过 再过一遍其实不会 题目描述 在大学期间 经常需要租借教室 大到院系举办活动 小到学习小组自习讨论 都需要向学校申请借教室 教室的大小功能不同 借教室人的身份不同 借教室的手续也不一样 面对海量租借教室的信息 我们自然希望编程解决这
  • 基础算法:高精度减法

    高精度减法 两个长正整数的减法 减数 被减数 差 如果不是两个长正整数 要考虑给出的数本身有负号的情况 用一个位置来专门保存负号 include
  • 基础算法:高精度加法

    高精度加法 代码模拟加法过程 1 lt 整数长度 lt 10 5 长整数的加法 int类型的最大值大概 2 1e9 10位长度 include
  • 尺取法--例题模板详解

    尺取法 一种神奇的技巧 在Codeforces中显示它的算法名称叫做 two pointers 直译成中文的话叫双指针法 尺取法 顾名思义 像尺子一样取一段 尺取法通常是对数组保存一对下标 即所选取的区间的左右端点 然后根据实际情况不断地推
  • 【LeetCode】二分法总结

    二分法总结 二分模板 找第一个大于等于target的 找第一个大于target的 33 搜索旋转排序数组 34 在排序数组中查找元素的第一个和最后一个位置 木头切割 二分模板 满足条件就写l mid 或 r mid 找第一个大于等于targ
  • A--玉米大炮--2022河南萌新联赛第(三)场:河南大学

    输入 3 3 1 1 2 2 3 3 输出 0 说明 开始时 小蓝控制所有大炮立即发射炮弹 僵王博士受到 666 点伤害 直接被击溃 示例2 输入 2 20 5 1 5 3 输出 2 说明 开始时 小蓝控制所有大炮立即发射炮弹 僵王博士受到
  • 二分的经典问题 最大化最小值和最小化最大值

    有点长 可以选自己想看的部分看 不过建议把刚开始的介绍看完 不多说 先来一个在升序无重复元素的数组中二分搜索的板子 l r 2 mid可能会爆int这种细节问题我们就放一边 int a MAX int Binary Search int v
  • 洛谷 P2249 【深基13.例1】查找

    题目链接 https www luogu com cn problem P2249 include
  • 牛客 AB29 快速乘 JAVA

    描述 请你计算 a b mod p 的值 要求只能使用加法和取模运算 且计算过程中的值不能超过 2 1072 107 一共有 q 次询问 输入描述 第一行输入一个正整数 q 代表询问次数 接下来每行输入三个正整数 a b p 代表一次询问
  • (今日头条面试题)剪绳子(二分带详细思路)

    有N根绳子 第i根绳子长度为Li 现在需要M根等长的绳子 你可以对N根绳子进行任意裁剪 不能拼接 请你帮忙计算出这M根绳子最长的长度是多少 输入格式 第一行包含2个正整数N M 表示原始绳子的数量和需求绳子的数量 第二行包含N个整数 其中第
  • 牛客 AB28 快速幂 JAVA

    描述 请你计算 ab mod p 的值 一共有 q 次询问 输入描述 第一行输入一个正整数 q 代表询问次数 接下来每行输入三个正整数 a b p 代表一次询问 数据范围 1 1051 q 105 1 1071 a b p 107 输出描述
  • 基础算法:差分

    题目 输入一个长度为 n 的整数序列 接下来输入 m 个操作 每个操作包含三个整数 l r c 表示将序列中 l r 之间的每个数加上 c 请你输出进行完所有操作后的序列 差分 若数组A a1 a2 a3 数组B b1 b2 b3 满足a1
  • 学算法,先从二分查找开始吧

    总纲 思路很简单 细节是魔鬼 分为三个常用场景 寻找一个数 寻找左侧边界 寻找右侧边界 最后给出力扣上的题目例子 还可以在GitHub上观看哦 AlgorithmNotes 基础框架 int binarySearch int nums in
  • 基础算法:浮点二分——数的三次方根

    浮点数二分 求一个数的三次方根 include
  • 【模板】二分

    文章目录 1 整数二分 1 1 寻找 x 或 x 的后继 1 2 寻找 x 或 x 的前驱 1 3 模板 1 4 解题步骤 2 实数二分 本文的二分模板来自 算法竞赛进阶指南 1 整数二分 对于整数域上的二分 需要注意终止边界 左右区间取舍
  • 洛谷P1182-数列分段(详解)

    题目 给定一个长度为n的数列A 要求将它分为m段 要求每段连续 且每段和的最大值最小 N lt 10e5 m lt n Ai之和不超过10e9 这题一看就知道我不会 所以很老实的去看了看题解 题解也真是避重就轻 重要的地方就说 这个要自己思
  • 基础算法:整数二分——数的范围

    题目 给定一个按照升序排列的长度为 n 的整数数组 以及 q 个查询 对于每个查询 返回一个元素 k 的起始位置和终止位置 位置从 0 开始计数 如果数组中不存在该元素 则返回 1 1 输入格式 第一行包含整数 n 和 q 表示数组长度和询
  • 基础算法:高精度除法

    高精度除法 题目条件 除数一定不为0 include
  • Min Difference 二分优化

    题目链接 暴力的时间复杂度是O n 2 n 2 n2 只能在查询的时候优化一下 可以手写一个左闭右开的二分 也可以使用库函数 l

随机推荐

  • 使用深度优先搜索查找图中的路径(java)

    package depthfirstpaths import edu princeton cs algs4 Graph import edu princeton cs algs4 Stack public class DepthFirstP
  • php mysql替换数据库中出现过的所有域名实现办法 (原)

    一般新的项目上线或域名必须要更改的时候 有些数据库存的图片或者文件地址带域名的要全部改 恰巧呢 数据库表超级多 恰巧呢 又刚做了接盘侠 啥也不知道 就给你连接数据库让你改 头大不头大 我这个接盘侠上任第一天就遇上了这问题 当拿到将近1G的数
  • Thinkphp 3.2 模型View 里面使用时间戳,在模板中输出时间戳

    很简单 只需要一个代码就能搞定 time 我是这样运用的 这样子做能保证一直更新 Css文件 保证整个布局的及时更新 跟 有效性
  • Android智能下拉刷新框架-SmartRefreshLayout

    框架 下拉刷新控件还能框架化 智能又怎么回事 二话不多少先上Demo效果图 咱们再来探个究竟 Github 传送门注意 本文仅仅是博客文章 主要用于项目介绍和宣传 由于发布时间关系 部分内容已经过期 详细使用文档请跳转 github Dem
  • 大数据毕设 基于python的疫情爬虫分析可视化系统

    文章目录 0 前言 1 课题背景 2 实现效果 3 Flask框架 4 Echarts 5 爬虫 0 前言 这两年开始毕业设计和毕业答辩的要求和难度不断提升 传统的毕设题目缺少创新和亮点 往往达不到毕业答辩的要求 这两年不断有学弟学妹告诉学
  • uniapp表单密码校验:判断两次密码输入是否一致

    uniapp表单密码校验 无需使用自定义validator进行校验 使用uniapp文档内自带的this u test object value password 即可
  • ORA-01536: 超出表空间 'YYPART' 的空间限额

    ORA 01536 超出表空间 YYPART 的空间限额 author skatetime 2008 08 01 现象 研发提示空间不够用 日志显示 ORA 01536 超出表空间 YYPART 的空间限额 解决 alter user sk
  • Redis之十大类型(三)(上)

    redis是k v键值对进行存储 这里的数据类型是value的数据类型 key的类型都是字符串 keys 当前库的所有key exists key 判断某个key是否存在 type key 查看你的key是什么类型 del key 删除指定
  • 华为OD机试 - 去除多余空格(Java)

    题目描述 去除文本多余空格 但不去除配对单引号之间的多余空格 给出关键词的起始和结束下标 去除多余空格后刷新关键词的起始和结束下标 条件约束 1 不考虑关键词起始和结束位置为空格的场景 2 单词的的开始和结束下标保证涵盖一个完整的单词 即一
  • Vue自定义指令及使用

    一 什么是指令 学习 vue 的时候肯定会接触指令 那么什么是指令呢 在 vue 中提供了一些对于页面和数据更为方便的输出 这些操作就叫做指令 以 v xxx 表示 比如 html 页面中的属性 div div div gt 比如在 ang
  • HC-05两个蓝牙配对经验(绝对好使)!!!!!

    特别注意 一 串口调试助手发送 命令时 波特率最好是38400 其他的可能不好使 具体自己可以尝试一下 二 发送命令的时候一定要加入换行 否则不好使 步骤 首先 断电按下蓝牙上的按键进入AT模式 这时候灯会慢闪 大约两秒一次 1 串口调试助
  • python中__str__()函的用法

    python中 str 函数的用法 定义一个 str 的用法 class Person def init self name age self name name self age age def str self return My na
  • 无线WiFi网络的密码破解攻防及原理详解

    大家应该都有过这样的经历 就是感觉自己家的无线网怎么感觉好像变慢了 是不是有人蹭我家网 还有的时候咱们出门也想试图蹭一下别人家的网 这里 蹭网 的前提是要破解对方的 无线密码 那么这个 无线密码 到底是否安全呢 其技术原理是如何的呢 我们又
  • 相应通道无电压但ADC的值却在大幅变化且不等于0的可能原因

    今天分享一个自己的粗心引起的现象 就是之前在做ADC时候 采用单通道 规则组 和软件触发 发现ADC采集的值一直在变化 而且我都没有输入相应的电压 按理来说 ADC输出的值应该为0 10 存在偏差 但是其值却不等于0并且一直不断的变化 于是
  • 基于免疫优化算法的物流配送中心选址规划研究(Matlab实现)

    目录 1 概述 2 物流配送中心选址规划研究 3 Matlab代码 4 结果 1 概述 影响物流配送中心选址的因素有很多 精确选址优化问题亟待解决 通过充分考虑货物的配送时间 将免疫算法加入其中 介绍了物流配送选址模型的构建以及免疫算法实现
  • Spring AOP源码解析-拦截器链的执行过程

    一 简介 在前面的两篇文章中 分别介绍了 Spring AOP 是如何为目标 bean 筛选合适的通知器 以及如何创建代理对象的过程 现在得到了 bean 的代理对象 且通知也以合适的方式插在了目标方法的前后 接下来要做的事情 就是执行通知
  • 主流开源数据库的技术特点(转载)

    点评主流开源数据库的技术特点 2006 02 24 来自 计算机世界 曹江华 随着开放源代码软件的使用越来越广泛 像Linux操作系统一样 开放源代码数据库的出现也有其必然性 在当Oracle IBM Microsoft Sybase 等几
  • 振动数据采集上位机(包含实时智能算法分析)开发

    功能模块介绍 上位机界面如下 开始采集按钮 当点击该按钮后 上位机开始采集数据 并界面展示时域数据信号 在开始采集之前必须先输入串口号和波特率和采样率 FFT分析 当点击按钮后 界面展示FFT频谱 系统参数按钮 可继续扩展 当点击该按钮后
  • 2的31次方和3的21次方哪个大,123组成最大的数是多少?

    123这三个数字组成最大的数是什么数 面试官告诉小孙 123这三个数字组成最大的数是什么数 我希望你能够在5分钟之内回答出来 小孙当时连想都没有想 123组成的最大数字 当然就是123了 当小孙把这个答案告诉面试官的时候 面试官摇摇头 然后
  • Min Difference 二分优化

    题目链接 暴力的时间复杂度是O n 2 n 2 n2 只能在查询的时候优化一下 可以手写一个左闭右开的二分 也可以使用库函数 l