当前位置: 首页 > news >正文

【管道——二分+区间合并】

题目

思路

  • 区间合并
    • 1、按照左端点排序
    • 2、遍历窗口,若窗口非法,继续遍历;否则执行3
    • 3、若是第一个窗口,设定合并结果初值,判断结果左端点是否造成“起点过大”,是,FALSE退出;否则执行4
    • 4、判断合并是否会造成“中间缺失”,是,FALSE退出;否,执行5
    • 5、更新结果右端点
    • 6、判断结果右端点是否造成“终点过小”,是,FALSE退出;否则执行2
    • 7、TRUE退出

代码

#include <bits/stdc++.h>
using namespace std;
#define L first
#define S second
const int N = 1e5 + 10;
const int M = 1e9;
typedef pair<int, int> PII;
typedef long long ll;
PII win[N];
int n, len;
ll mid;
ll getl(PII a)
{return (ll)a.L - mid + a.S;
}
ll getr(PII a)
{return (ll)a.L + mid - a.S;
}
bool cmp(PII a, PII b)
{//[L-T+S,L+T-S]return getl(a) < getl(b);
}
bool check()
{sort(win + 1, win + n + 1, cmp);ll l = 0, r = 0;for (int i = 1; i <= n; i++){ll nl = getl(win[i]), nr = getr(win[i]);if (nl > nr)continue; // 无效if (r == 0){l = nl;r = nr;if (l > 1)return false; // 起点过大,无法覆盖continue;}if (nl - r > 1) // 中间缺少,无法覆盖return false;r = max(r, nr); // 取大}if (r < len)return false; // 终点过小,无法覆盖return true;
}
int main()
{ios::sync_with_stdio(0);cin.tie(0);cin >> n >> len;for (int i = 1; i <= n; i++){cin >> win[i].L >> win[i].S;}ll l = 0, r = 2 * M;while (l < r){mid = l + r >> 1;if (check())r = mid;elsel = mid + 1;}cout << l;
}

http://www.lryc.cn/news/515446.html

相关文章:

  • 宽带、光猫、路由器、WiFi、光纤之间的关系
  • 如何排查 Apache Doris 中 “Failed to commit txn“ 导入失败问题?
  • 回归预测 | MATLAB实现CNN-GRU卷积门控循环单元多输入单输出回归预测
  • HCIA-Access V2.5_7_3_XG(S)原理_关键技术
  • leetcode hot 100 不同路径
  • 智慧工地解决方案 1
  • LeetCode -Hot100 - 53. 最大子数组和
  • php 多进程那点事,用 swoole 如何解决呢 ?
  • 探索AI在地质科研绘图中的应用:ChatGPT与Midjourney绘图流程与效果对比
  • 【竞技宝】CS2:HLTV 2024 TOP11-w0nderful
  • Lua迭代器如何使用?
  • qt中如何判断字符串是否为数字,整数,浮点数?
  • Oracle sql developer and Toad for Oracle set start DBMS output
  • 【踩坑】SparkSQL union/unionAll 函数的去重问题
  • 域上的多项式环,整除,相通,互质
  • 计算机毕业设计PyHive+Hadoop深圳共享单车预测系统 共享单车数据分析可视化大屏 共享单车爬虫 共享单车数据仓库 机器学习 深度学习
  • Julia语言的学习路线
  • 对计网大题的一些指正(中间介绍一下CDM的原理和应用)
  • UGUI 优化DrawCall操作记录(基于Unity2021.3.18)
  • 前端实现大文件上传(文件分片、文件hash、并发上传、断点续传、进度监控和错误处理,含nodejs)
  • es单机安装脚本自动化
  • Java 数据库连接 - Sqlite
  • CentOS — 目录管理
  • 【第二部分--Python之基础】04 函数
  • 我们公司只有3个人,一个前端,一个后端
  • 基于LabVIEW的BeamGage自动化接口应用
  • 【AI编辑器】Cursor与DeepSeek模型的集成:提升开发效率的新选择
  • vue2实现excel文件预览
  • STM32 和 ESP32
  • R语言中的时间序列分析·