砖墙专题

P4560 [IOI2014] Wall 砖墙

*原题链接* 做法:线段树 一道比较基础的线段树练手题,区间赋值,在修改时加些判断剪枝。 对于add操作,如果此时区间里的最小值都大于等于h的话,就没必要操作,如果最大值都小于h的话,就直接区间赋值为h。对于remove操作同理。 时间复杂度大致为,实际会比这个要大一些。 #include<bits/stdc++.h>using namespace std;const int N=2

线段树--luoguP4560 [IOI2014]Wall 砖墙

传送门 很巧啊只需要维护上界和下界就好了 一开始以为要维护四个,其实只用维护两个就好了,如果到了 l = r l=r l=r的时候修改一下序列上的值就行。 #include<iostream>#include<cstdio>#include<cstring>#define N 2000005#define ls cur<<1#define rs cur<<1|1using names

554. 砖墙(LeetCode每日一题)

554. 砖墙(Java) 题目链接:https://leetcode-cn.com/problems/brick-wall 1、题目 你的面前有一堵矩形的、由 n 行砖块组成的砖墙。这些砖块高度相同(也就是一个单位高)但是宽度不同。每一行砖块的宽度之和应该相等。 你现在要画一条自顶向下的、穿过最少砖块的垂线。如果你画的线只是从砖块的边缘经过,就不算穿过这块砖。你不能沿着墙的两个垂直边缘之