首页 > 其他分享 >蓝桥杯管道 -- 二分, 区间覆盖

蓝桥杯管道 -- 二分, 区间覆盖

时间:2023-11-15 20:56:40浏览次数:36  
标签:二分 -- list mid long 蓝桥 int sc new

蓝桥杯管道 -- 二分, 区间覆盖

原题链接

参照执梗大佬的代码, 我太菜了wuwuwu......

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

/**
 * ClassName:Main12
 * Package:
 * Description:
 *
 * @author:LH寒酥
 * @create:2023/11/15-20:22
 * @version:v1.0
 */
public class Main {
    static int n, m;

    static boolean check(long mid, int[] a, int[] s) {
        List<long[]> list = new ArrayList<>();
        for (int i = 0; i < n; i ++) {
            if (mid >= s[i])
                list.add(new long[] {a[i] - (mid - s[i]), a[i] + (mid - s[i])});
        }
        Collections.sort(list, (o1, o2) -> Long.compare(o1[0], o2[0]));

        if (list.size() == 0) return false;
        long[] arr = list.get(0);
        if (arr[0] > 1) return false;

        long r = arr[1];
        for (int i = 1; i < list.size(); i ++) {
            long[] temp = list.get(i);
            if (temp[0] <= r + 1) r = Math.max(r, temp[1]);
            else break;
        }

        return r >= m;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        m = sc.nextInt();
        int[] a = new int[n];
        int[] s = new int[n];
        for (int i = 0; i < n; i ++) {
            a[i]= sc.nextInt();
            s[i]= sc.nextInt();
        }
        long l = 0, r = (int)1e9 + 1;
        while (l + 1 < r) {
            long mid = l + r >> 1;
            if (check(mid, a, s)) r = mid;
            else l = mid;
        }
        System.out.println(r);
    }
}

标签:二分,--,list,mid,long,蓝桥,int,sc,new
From: https://www.cnblogs.com/rimliuhan/p/17834740.html

相关文章

  • 11.15每日总结
    1114lombok的使用和注册接口与登录接口细节   先导入lombok的依赖,加上@Data注解  这是pojo包下的result,使用的两个注解是无参构造和有参构造controller:书写 service接口书写: serviceImol书写: 其中@Service把把该类注入到容器中,@Autowired注解是依赖注......
  • 【LGR-166-Div.4】洛谷入门赛17
    【LGR-166-Div.4】洛谷入门赛#17比赛地址这次是div4的难度,整体不算是很难,很适合小白玩家[10月入门赛-A]食堂题目描述为了给师生提供良好的用餐体验,洛谷小学的食堂坚持现炒、现做每一道菜肴。洛谷小学一共有\(a\)名老师和\(b\)名学生。食堂的营养师为每位师生的用餐进......
  • 【misc】[SDCTF 2022]Flag Trafficker --jsFuck代码
    附件下载下来是一个流量包,用wireshark打开该流量包,然后搜索字符串"flag",就会出现如下的jsfuck代码右键onlick显示分组字节可以看到很大一串的jsfuck代码,现在是需要运行这段代码,可利用在线网站运行:JSFuck-在线加解密(bugku.com),运行完就是flag还可以保存为html文件在浏......
  • JAVA大小写敏感问题
    最近从Golang转JAVA,据我了解JAVA是大小写敏感的,于是我写了如下的测试代码`classTable{}classtable{}publicclassMyMultiClass{publicstaticvoidmain(String[]args){TableT=newTable();tablet=newtable();}}`结果出现了下面的错误`Exceptionin......
  • CF570D Tree Requests
    题意给定一棵根为\(1\)的有根树,以及字符串\(S\)。\(x,h\)求\(x\)的子树内,深度为\(h\)的节点的字符能否重排为一个回文串。Sol不难发现,回文串显然至多有一个字符出现奇数个。所以我们对于每种字符随机附权值,维护前缀异或值。查询时枚举\(26\)种为奇数的情况,这是......
  • 第二章——线性表
    第二章——线性表 一、线性表简述1、什么是线性表?线性表(linearlist)是n个具有相同特性的数据元素的有限序列,是一种在实际中广泛使用的数据结构。像数组charbuf[5]={1,2,3,4,5},里面出现的元素都是char型的,不会是int、float等其他类型。2、常见的线性表顺序表、链表、......
  • 核心命令
    核心命令查询网站命令查询网站帮助命令help获得shell内置命令帮助信息man获得帮助信息文件目录类lsls#列出可见文件ls-l#列出可见文件详细信息ls-al#显示隐藏文件cdcd#切换目录cd~#切换到用户主目录cd-#回到上次目录cd..#返回上一级目录cpc......
  • python相关命令
    管理员权限:set-executionpolicyremotesignedpython-Vnvidia-smipython-mvenvvenv./vevn/Scripts/activate.batorvenv\Scripts\Activate.ps1pip3installtorchtorchvisiontorchaudio--index-urlhttps://download.pytorch.org/whl/cu116pipinstall-rrequir......
  • 第二十三篇 - d3绘制直方图
    当下探讨用d3制作简单横向直方图效果图:一、下载d3【npminstalld3】二、导入d3【import*asd3from"d3";】二、画直方图参考链接:https://www.cnblogs.com/xuepei/p/7527082.html1.准备表格数据rectlist:[{week:"星期一",product:8......
  • 函数依赖定义、函数依赖类型
    这个作业属于哪个课程https://edu.cnblogs.com/campus/uzz/cs3这个作业要求在哪里https://edu.cnblogs.com/campus/uzz/cs3/homework/13106这个作业的目标函数依赖定义、函数依赖类型1.函数依赖函数依赖分为完全函数依赖,部分函数依赖和传递函数依赖。函数依赖......