首页 > 其他分享 >一 503. 借教室 (差分|二分)

一 503. 借教室 (差分|二分)

时间:2024-03-25 15:36:09浏览次数:28  
标签:二分 int System 差分 mid static private 503 rooms

503. 借教室 (差分|二分)
image

import java.util.*;

public class Main {
    private static int n, m;
    private static int[] rooms;
    private static int[][] orders;
    
    private static boolean check(int mid) {
        long[] diff = new long[n + 2];
        for (int i = 1; i <= mid; i++) {
            diff[orders[i][1]] += orders[i][0];
            diff[orders[i][2] + 1] -= orders[i][0];
        }

        long sum = 0;
        for (int i = 1; i <= n; i++) {
            sum += diff[i];
            if (sum > rooms[i]) {
                return false;
            }
        }
        return true;
    }
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        m = sc.nextInt();
        rooms = new int[n + 1];
        for (int i = 1; i <= n; i++) {
            rooms[i] = sc.nextInt();
        }
        orders = new int[m + 1][3];
        for (int i = 1; i <= m; i++) {
            orders[i][0] = sc.nextInt();
            orders[i][1] = sc.nextInt();
            orders[i][2] = sc.nextInt();
        }

        int left = 0, right = m;
        while (left < right) {
            int mid = left + right + 1 >> 1;
            if (check(mid)) {
                left = mid;
            }
            else {
                right = mid - 1;
            }
        }

        if (right == m) {
            System.out.println("0");
        }
        else {
            System.out.println("-1");
            System.out.println(left + 1);
        }
    }
}

标签:二分,int,System,差分,mid,static,private,503,rooms
From: https://www.cnblogs.com/he0707/p/18086006/lanqiaobei01

相关文章

  • 青蛙过河(前缀+二分)
    1importjava.util.*;23publicclassMain{4publicstaticvoidmain(String[]args){5Scannerscanner=newScanner(System.in);6intn=scanner.nextInt();7longx=scanner.nextLong();8//前缀和9lo......
  • 蓝桥杯2017年第八届真题-分巧克力(二分算法)
    题目描述儿童节那天有K位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友们。小明一共有N块巧克力,其中第i块是HixWi的方格组成的长方形。为了公平起见,小明需要从这N块巧克力中切出K块巧克力分给小朋友们。切出的巧克力需要满足:1.形状是正方形,边长是整数2.大......
  • 洛谷题单算法1-6二分查找与二分答案
    代码仅供参考,不足之处望理解。P2249【深基13.例1】查找#include<iostream>usingnamespacestd;constintN=1e6+5;intn,m,a[N];intmain(){ios::sync_with_stdio(false);//输入cin>>n>>m;for(inti=1;i<=n;i++)cin>>a[i];for(inti=1......
  • C105 整体二分+树状数组 P2617 Dynamic Rankings
    视频链接:C105整体二分+树状数组P2617DynamicRankings_哔哩哔哩_bilibili  C96树状数组套权值线段树P2617DynamicRankings-董晓-博客园(cnblogs.com)C104【模板】整体二分+树状数组P3834可持久化线段树2-董晓-博客园(cnblogs.com)LuoguP2617Dynamic......
  • 初用scrapy 报错503 Service Unavailable问题
    毕设基于Hadoop的电子产品推荐系统 系统需要大量的电子产品信息,爬取的是中关村的数据(没有像京东一样的反爬机制)使用scrapyspider爬取页面信息中,可以获取部分页面数据,但爬取一些页面时,会报错503ServiceUnavailable部分代码详情defparse(self,response):if......
  • 3月22日二分法查找
    二分查找:二分查找也叫折半查找,二分查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。普通查找的时间复杂度为O(n),二分查找的时间复杂度仅需要O(log2^n)查找的实现原理:先定左右边界,之后比较待查找元素与中间元素谁大谁小,如果中间值大于目标值,那么右边界等于中......
  • 时序分析:基础知识整理(三)差分转单端的约束等
    之后的都只有我个人能看,想看的请支持单刀大佬。主时钟约束主时钟约束,就是我们对主时钟(PrimaryClock)的时钟周期进行约束(告诉综合工具布局布线的标准),这个约束是我们用的最多的约束了,也是最重要的约束。主时钟必须与一个网表对象相连,该对象代表了所有时钟边沿的开始点,并且在时钟......
  • 差分约束
    (例)layout传送门题目描述当排队等候喂食时,奶牛喜欢和它们的朋友站得靠近些。FJ有N(2<=N<=1000)头奶牛,编号从1到N,沿一条直线站着等候喂食。奶牛排在队伍中的顺序和它们的编号是相同的。因为奶牛相当苗条,所以可能有两头或者更多奶牛站在同一位置上。即使说,如果我们想象奶牛是站在一......
  • 【Python脚本随手笔记】 ---基于鸿蒙系统LiteOS实现差分编译脚本(下篇)
    ......
  • 二分算法查找列表中的目标值
    题目要求:给定一个已排序的非重复整数数组和一个目标值,如果找到目标,则返回索引。如果不是,返回索引按顺序插入时的位置。(用二分法查找解决)示例1:输入:[1,3,5,6],目标值5输出:2示例2:输入:[1,3,5,6],目标值2输出:1示例3:输入:[1,3,5,6],目标值7输出:4示例4:输入:[......