首页 > 编程语言 >[蓝桥杯] 管道 java题解

[蓝桥杯] 管道 java题解

时间:2024-03-31 16:45:21浏览次数:28  
标签:java int 题解 pipes 蓝桥 nextInt 管道 static sc

import java.util.*;

/**
 * 管道
 * 其实这道题核心根本不用管管道左边的如何,我们可以把左边当成注水口
 */
public class Main {
    static int n;
    static int[][] pipes ;  // 阀门安排的地方
    static int len;  // 管道长度
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        len = sc.nextInt();
        pipes = new int[n][2];
        for (int i = 0; i < n; i++) {
            pipes[i][0] = sc.nextInt();  //阀门打开位置
            pipes[i][1] = sc.nextInt();  //阀门打开时间
        }
        // 二分法求时间
        int l=0,r=Integer.MAX_VALUE;
        while(l<=r){
            int mid = (l+r)>>1;
            if(check(mid)){  //时间可能大了
                r = mid - 1;
            }else{  // 时间小了
                l = mid + 1;
            }
        }
        System.out.println(l);
    }
    public static boolean check(int time){
        int rightLast = 0;
        for (int i = 0; i < n; i++) {
            if(pipes[i][1]<= time){  // 在该阀门打开时间这个时间段内
                int l = pipes[i][0] - ( time-pipes[i][1] );
                int r = pipes[i][0] + ( time-pipes[i][1] );
                // 只要左区间在右边囊括的范围内或者正好挨边就提取最右边的区间
                if(l<=rightLast+1) rightLast = Math.max(r,rightLast);
            }
        }
        return rightLast>=len;
    }
}

标签:java,int,题解,pipes,蓝桥,nextInt,管道,static,sc
From: https://www.cnblogs.com/xiaofengs/p/18106897

相关文章

  • AtCoder Beginner Contest 347 A-F 题解
    A-DivisibleQuesiton给你正整数\(N\)和\(K\),以及长度为\(N\)的序列\(A\)。提取\(A\)中所有是\(K\)倍数的元素,除以\(K\),并打印商。Solution判断\(A_i\%K\)的值是否为\(0\),如果非\(0\)则表示可以整除Code#include<bits/stdc++.h>usingnamespacest......
  • java的抽象类和接口
    抽象类:abstract,可以用此关键字修饰类和方法abstract修饰类就是抽象类,修饰方法就是抽象方法抽象类的注意事项,特点:抽象类不一定有抽象方法,但有抽象方法的类一定是抽象类类该有的成员(成员变量,方法,构造器)抽象类也可以有抽象类的特点:抽象类不能创建对象,仅仅作为一种特殊的父......
  • 2024年最新github之Java排行榜top50项目
    如果有帮助到您还请动动手帮忙点赞,关注,评论转发,感谢啦!......
  • [附源码]计算机毕业设计电影播放器开发与设计(JSP+java+springmvc+mysql+MyBatis)
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图项目介绍随着数字媒体技术的发展,电影播放器已成为人们日常生活中不可或缺的娱乐工具。一个功能丰富的电影播放器不仅需要支持各种视频格式、提供高清流畅的播放体验,还应......
  • [附源码]计算机毕业设计在线直播管理系统(JSP+java+springmvc+mysql+MyBatis)
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图项目介绍在线直播管理系统,帮我写150字的选题背景的内容随着互联网技术的飞速发展,在线直播已成为新兴的媒体传播方式,尤其在娱乐、教育、电商等领域得到广泛应用。一个高......
  • [附源码]计算机毕业设计基于ssm的会议室预约系统(JSP+java+springmvc+mysql+MyBatis)
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图项目介绍基于SSM(Spring,SpringMVC,MyBatis)框架的会议室预约系统,旨在通过现代化的信息技术手段解决企业和机构中会议室资源分配和使用的问题。随着企业规模的扩大和办......
  • [附源码]计算机毕业设计高校多媒体教室预约系统(JSP+java+springmvc+mysql+MyBatis)
    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。项目文件图项目介绍随着信息技术在教育领域的广泛应用,多媒体教室成为高校教学资源的重要组成部分。合理高效的预约管理系统对于充分利用多媒体教室资源、提高教学质量和效率具有显......
  • 蓝旭预习博客2:Java异常类、常用类、容器与泛型
    Java异常类1.什么是异常异常是导致程序中断运行的一种指令流,如果不对异常进行正确处理,则可能导致程序的中断执行,造成不必要的损失。例如下标越界异常(IndexOutOfBoundsException)空指针异常(NullPointerException) 算术异常( ArithmeticException)数字格式化异常(NumberFormatE......
  • JAVA编程基础与面向对象程序设计(基础)
    1.1标识符与命名规范 标识符:java中的类,方法,变量,包命名的符号。标识符规则(1)只能由字母,数字,下划线,美元符号组成,并且不能一数字开头。(2)java标识符大小写敏感,长度无限制。(3)标识符不可以是java的关键字与保留字。关键字:java中预先定义好的一些有特别意义的单词,它们构......
  • Java多线程三种实现方式
    一、继承Thread方法publicclassMyThreadextendsThread{@Overridepublicvoidrun(){for(inti=0;i<10;i++){System.out.println(getName()+"输出内容");}}publicstaticvoidmain(String[]args){......