首页 > 其他分享 >管道(蓝桥杯)

管道(蓝桥杯)

时间:2024-03-20 20:45:12浏览次数:22  
标签:10 int 阀门 mid len 蓝桥 管道

有一根长度为 \(len\) 的横向的管道,该管道按照单位长度分为 \(len\) 段,每一段的中央有一个可开关的阀门和一个检测水流的传感器。

一开始管道是空的,位于 \(L_i\) 的阀门会在 \(S_i\) 时刻打开,并不断让水流入管道。

对于位于 \(L_i\) 的阀门,它流入的水在 \(T_i\)(\(T_i \ge S_i\))时刻会使得从第 \(L_i-(T_i-S_i)\) 段到第 \(L_i+(T_i-S_i)\) 段的传感器检测到水流。

求管道中每一段中间的传感器都检测到有水流的最早时间。

输入格式

输入的第一行包含两个整数 \(n,len\),用一个空格分隔,分别表示会打开的阀门数和管道长度。

接下来 \(n\) 行每行包含两个整数 \(L_i,S_i\),用一个空格分隔,表示位于第 \(L_i\) 段管道中央的阀门会在 \(S_i\) 时刻打开。

输出格式

输出一行包含一个整数表示答案。

数据范围

对于 \(30\%\) 的评测用例,\(n ≤ 200\),\(S_i,len ≤ 3000\);
对于 \(70\%\) 的评测用例,\(n ≤ 5000\),\(S_i,len ≤ 10^5\);
对于所有评测用例,\(1 ≤ n ≤ 10^5\),\(1 ≤ S_i,len ≤ 10^9\),\(1 ≤ L_i ≤ len\),\(L_{i-1} < L_i\)。

输入样例:

3 10
1 1
6 5
10 2

输出样例:

5
#include <bits/stdc++.h>
#define x first
#define y second
#define int long long

using namespace std;

const int N = 1e5 + 10;
typedef pair<int, int> PII;
int n, m;
PII s[N], q[N];

bool check(int u)
{
    int cnt = 0;
    for(int i = 0; i < n; i ++ )
    {
        int L = s[i].x, S = s[i].y;

        if(S <= u) // 当前时刻u大于等于水阀打开时刻S
        {
            int t = u - S;
            int l = max((int)1, L - t), r = min(m, L + t); // 水在u时刻所能覆盖的范围
            q[cnt ++ ] = {l, r};
        }
    }

    sort(q, q + cnt);

    int l = -1, r = -1;
    for(int i = 0; i < cnt; i ++ )
    {
        if(q[i].x <= r + 1) r = max(r, q[i].y); // 合并u时刻水覆盖的区域
        else l = q[i].x, r = q[i].y;
    }
    return l == 1 && r == m;
}

signed main()
{
    cin >> n >> m;
    for(int i = 0; i < n; i ++ ) cin >> s[i].x >> s[i].y;

    int l = 0, r = 2e9;
    while(l < r)
    {
        int mid = (l + r) >> 1;
        if(check(mid)) r = mid;
        else l = mid + 1;
    }

    cout << l << endl;
}

标签:10,int,阀门,mid,len,蓝桥,管道
From: https://www.cnblogs.com/lint-ss/p/18086029

相关文章

  • 2023年蓝桥杯省赛——棋盘
    目录题目链接:10.棋盘-蓝桥云课(lanqiao.cn)思路我的直接暴力思路代码实现前缀和思路前缀和:更多举例差分数组:更多举例前缀和与差分数组的关系如下代码实现 总结题目链接:10.棋盘-蓝桥云课(lanqiao.cn)思路我的直接暴力思路        我的这段Ja......
  • 蓝桥杯- 第14届模拟题第二套
     老规矩,先看外设要求......ADC,LED,LCD,KEY,EEPROM。除了EEPROM之外其它没什么新意,所以我们来看看EEPROM就可以了(其它可以在第一套模拟题中看到) /*****************************************************************************************************************/EE......
  • 第十三届蓝桥杯省赛B组
    目录试题A:排列字母试题B:寻找整数题解试题C:纸张尺寸试题D:数位排序试题E:蜂巢试题F:消除游戏暴力试题G:全排列的价值题解正解试题H:技能升级试题I:最长不下降子序列试题J:最优清零方案代码题解:滑动窗口试题A:排列字母见https://www.cnblogs.com/lushuang55/p/18069984试题B:寻找整数......
  • 蓝桥杯进阶03——光温显示综合应用
    一、分模块1.led和smg检测单片机上电后,8个LED灯从左到右依次点亮,然后再从左到右依次熄灭,进行LED的检测;8个数码管从左到右,逐个数码管全部段码点亮,然后再从左到右,这个数据管全部段码熄灭,进行数码管的检测。关闭蜂鸣器和继电器等无关设备。voidDisplaysmg(){ unsigned......
  • 蓝桥杯 2013 国 AC 网络寻路 第四届国赛 洛谷P8605
    [蓝桥杯2013国AC]网络寻路题目描述XXX国的一个网络使用若干条线路连接若干个节点。节点间的通信是双向的。某重要数据包,为了安全起见,必须恰好被转发两次到达目的地。该包可能在任意一个节点产生,我们需要知道该网络中一共有多少种不同的转发路径。源地址和目标地......
  • 进程间通信 之 管道
    目录什么是管道通信管道通信的特点匿名管道命名管道进程间通信的本质:让不同的进程看到同一份资源!什么是管道通信管道是Unix中最古老的进程间通信的形式。它是一种基于文件的通信形式,我们把从一个进程连接到另一个进程的一个数据流称为一个“管道”。管道文件是一种......
  • 计数组合【2024蓝桥杯0基础】-学习笔记
    文章目录计数原理排列数组合数组合数性质例题分析代码复现例题2状态分析代码复现常见的排列组合问题圆排列代码复现第二类斯特林数感悟计数原理排列数组合数组合数性质例题分析代码复现defksm(a,b,c):ans=1%cwhileb!=0:......
  • 蓝桥杯单片机小蜜蜂学习笔记——矩阵键盘
    笔记仅供学习参考学习视频链接【基础技能07】矩阵键盘的扫描原理与基本应用基本原理(图片来自欧老师的视频)讲一下基本原理吧图片的左半部分是矩阵键盘的布局R1R2R3R4C1C2C3C4都是IO端口(就是电平高低可以人为控制)图片右半部分上面是独立按键下面是矩阵键盘两者的区......
  • 蓝桥杯题目-可构造的序列总数
    链接可构造的序列总数-蓝桥云课(lanqiao.cn)知识点动态规划思路        定义表示序列长度为,以结尾的合法序列的数量 ,初始化时有。因为题意要求 是 的倍数,所以在转移时每个数应该从它的因子转移过来,即:                        ......
  • 【蓝桥杯选拔赛真题70】python最短路径和 第十五届青少年组蓝桥杯python选拔赛真题 算
    目录python最短路径和一、题目要求1、编程实现2、输入输出二、算法分析三、程序编写四、程序说明五、运行结果六、考点分析七、 推荐资料1、蓝桥杯比赛2、考级资料3、其它资料python最短路径和第十五届蓝桥杯青少年组python比赛选拔赛真题一、题目要求(注:i......