BZOJ1113 Poi2008 海报PLA Description N个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们. Input 第一行给出数字N,代表有N个矩形.N在[1,250000] 下面N行,每行给出矩形的长与宽.其值在[1,1000000000]2 1/2 Postering Output 最少数量的海报数. Sample Input 5 1 2 1 3 2 2 2 5 1 4 Sample Output 4 直接单调栈扫过去就可以了 注意合并高度相等的情况 #in…
洛谷P1823 [COI2007] Patrik 音乐会的等待(单调栈+二分查找) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1333275 这个题不是很难,但是没有转过来还是难想的 可以先去做一下这个题:洛谷P1901 发射站 蒟蒻发现很多题解都是错的呀,复杂度比较玄学吧 介绍一种标准的\(O(nlogn)\)的方法 单调栈 我们对于一个人作为方案中右边那个人时我们算答案(为了不算重) 有哪些人我们看不到呢,无非是被它右边的人挡住了是吧 那么从左往…
题目: 洛谷3467 分析: (ti jie shuo)这题是个单调栈经典题. 单调栈就是栈元素递增或递减的栈,这里只考虑递增.新元素入递增栈时,先将所有比它大的元素弹出,然后让新元素入栈,这样保证栈顶永远是最大的元素,代码如下:(\(a\)是新元素) while(top>0&&stack[top]>a)top--; stack[++top]=a; 然后来分析这道题.我这种蒟蒻乍一看一脸懵逼,但是可以注意到这样一个事实: 如果先让每个楼都贴一张海报(\(ans=n\)),如果两…
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #define maxn 250005 using namespace std; int n,top,stack[maxn],ans; int main(){ int u,v; scanf("%d",&n); top=ans=,me…
LOJ BZOJ 洛谷 想了一个奇葩的单调栈,算的时候要在中间取\(\min\),感觉不靠谱不写了=-= 调了十分钟发现输出没取模=v= BZOJ好逗逼啊 题面连pdf都不挂了 哈哈哈哈 枚举每一位.在这一位上与之后得到\(1\)的就是全\(1\)子矩形个数.或之后得到\(1\)的就是总举行个数减去全\(0\)子矩形个数. 单调栈算一下就好啦. 维护一个单调递增的栈.如果在右下角统计贡献,每次遇到往上延伸长度\(l\leq sk[top]\)时,会把\(sk[top]\)的一部分截断.用个变量\…
[洛谷P1823]音乐会的等待 Description N个人正在排队进入一个音乐会.人们等得很无聊,于是他们开始转来转去,想在队伍里寻找自己的熟人.队列中任意两个人A和B,如果他们是相邻或他们之间没有人比A或B高,那么他们是可以互相看得见的. 写一个程序计算出有多少对人可以互相看见. 输入格式: 输入的第一行包含一个整数N (1 ≤ N ≤ 500 000), 表示队伍中共有N个人. 接下来的N行中,每行包含一个整数,表示人的高度,以毫微米(等于10的-9次方米)为单位,每个人的调度都小于2^…
题目链接 BZOJ1113 题解 显然只与高有关,每次选择所有海报中最低的覆盖所有海报,然后分治两边 每个位置会被调用一次,复杂度\(O(nlogn)\) \(upd:\)智障了,,是一道\(O(n)\)普及-贪心模拟题QAQ #include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<map> #…
正解:线段树+单调栈 解题报告: 传送门! 1551又是一道灵巧连题意都麻油看懂的题,,,,所以先解释一下题意好了,,,, 给定一个n元环 可以从0时刻开始从任一位置出发 每次可以选择向前走一步或者在原地不动 当到第i个点的时间ti>=Ti的时候点i被标记 问标记完整个环最少要多久时间 (Ti带修改QAQ 首先有几个会用到的性质大概港下 1)只要走一圈就足够 试证如下: 可以考虑反过来看这个问题,若现在已知标记的最后一个点的时间为Tim,那么题目就变成辣,现在时间为T,每次可以向后倒退一步或不动…
题目描述 Farmer John's N (1 <= N <= 100,000) cows, conveniently numbered 1..N, are once again standing in a row. Cow i has height H_i (1 <= H_i <= 1,000,000). Each cow is looking to her left toward those with higher index numbers. We say that cow…
题目链接: https://www.luogu.org/problemnew/show/P1198 题目描述 现在请求你维护一个数列,要求提供以下两种操作: 1. 查询操作. 语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值. 限制:LL不超过当前数列的长度.(L > 0)(L>0) 2. 插入操作. 语法:A n 功能:将nn加上tt,其中tt是最近一次查询操作的答案(如果还未执行过查询操作,则t=0t=0),并将所得结果对一个固定的常数DD取模,将所得答案插入到数…
开两个数组:to[i][j]表示从i这个位置向下的第2j个圆盘是哪个,f[i][j]表示流满从i这个位置向下的 2j 个圆盘需要多少体积的水. 详情见代码: 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N=1e5+10; 4 int d[N],c[N],r,v; 5 int n,q,f[N][20],to[N][20]; 6 int top,s[N]; 7 8 int read(){ 9 int x=0,f=1;ch…
1113: [Poi2008]海报PLA Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1025  Solved: 679[Submit][Status][Discuss] Description N个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们. Input 第一行给出数字N,代表有N个矩形.N在[1,250000] 下面N行,每行给出矩形的长与宽.其值在[1,1000000000]2 1/2 Postering Output…
1113: [Poi2008]海报PLA Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 896  Solved: 573[Submit][Status][Discuss] Description N个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们. Input 第一行给出数字N,代表有N个矩形.N在[1,250000] 下面N行,每行给出矩形的长与宽.其值在[1,1000000000]2 1/2 Postering Output 最…
1113: [Poi2008]海报PLA Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 765  Solved: 466[Submit][Status][Discuss] Description N个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们. Input 第一行给出数字N,代表有N个矩形.N在[1,250000] 下面N行,每行给出矩形的长与宽.其值在[1,1000000000]2 1/2 Postering Output 最…
[Poi2008]海报PLA Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1304  Solved: 896[Submit][Status][Discuss] Description N个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们. Input 第一行给出数字N,代表有N个矩形.N在[1,250000] 下面N行,每行给出矩形的长与宽.其值在[1,1000000000]2 1/2 Postering Output 最少数量的海…
一,自己思考下 1,先自己思考下 N个矩形,排成一排,现在希望用尽量少的海报去cover住它们. 2,不懂. 着实不懂. 3,分析下,最优性问题对吧,然后就每什么想法了.. 虽然肯定和单调栈和单调队列有啥关系来着. 二,听课 1,由图观察得知,至少有一栋楼是被完全覆盖的 2,覆盖的楼不整齐的话必然不优,这人费曼肯定没学,好!! 3,f[i]表示将第i栋楼完全覆盖,并以该房屋的高度将广告向左延申的最大距离 为啥向左,就是我们来的方向呢>因为左右对称?? 4,什么倒着左边右边也一样? 从左往右一遍,…
Description N个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们. Input 第一行给出数字N,代表有N个矩形.N在[1,250000] 下面N行,每行给出矩形的长与宽.其值在[1,1000000000]2 1/2 Postering Output 最少数量的海报数. Sample Input 5 1 2 1 3 2 2 2 5 1 4 Sample Output 4 HINT 单调递增栈随便搞一下就好 /*program from Wolfycz*/ #include…
http://www.lydsy.com/JudgeOnline/problem.php?id=1113 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1170  Solved: 792[Submit][Status][Discuss] Description N个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们. Input 第一行给出数字N,代表有N个矩形.N在[1,250000] 下面N行,每行给出矩形的长与宽.其值在[1,10…
题目描述 Bytetown城市要进行市长竞选,所有的选民可以畅所欲言地对竞选市长的候选人发表言论.为了统一管理,城市委员会为选民准备了一个张贴海报的electoral墙. 张贴规则如下: electoral墙是一个长度为N个单位的长方形,每个单位记为一个格子: 所有张贴的海报的高度必须与electoral墙的高度一致的: 每张海报以“A B”表示,即从第A个格子到第B个格子张贴海报: 后贴的海报可以覆盖前面已贴的海报或部分海报. 现在请你判断,张贴完所有海报后,在electoral墙上还可以看见…
题目描述 Bytetown城市要进行市长竞选,所有的选民可以畅所欲言地对竞选市长的候选人发表言论.为了统一管理,城市委员会为选民准备了一个张贴海报的electoral墙. 张贴规则如下: electoral墙是一个长度为N个单位的长方形,每个单位记为一个格子: 所有张贴的海报的高度必须与electoral墙的高度一致的: 每张海报以“A B”表示,即从第A个格子到第B个格子张贴海报: 后贴的海报可以覆盖前面已贴的海报或部分海报. 现在请你判断,张贴完所有海报后,在electoral墙上还可以看见…
P3469[POI2008]LO-Blockade 题意翻译 在Byteotia有n个城镇. 一些城镇之间由无向边连接. 在城镇外没有十字路口,尽管可能有桥,隧道或者高架公路(反正不考虑这些).每两个城镇之间至多只有一条直接连接的道路.人们可以从任意一个城镇直接或间接到达另一个城镇. 每个城镇都有一个公民,他们被孤独所困扰.事实证明,每个公民都想拜访其他所有公民一次(在主人所在的城镇).所以,一共会有n*(n-1)次拜访. 不幸的是,一个程序员总罢工正在进行中,那些程序员迫切要求购买某个软件.…
BLO-Blockade 题目链接 若一个点为割点:统计出每个子树的大小,两两相乘再相加, 再加上n-1,为这个点与其他点的拜访数, 因为拜访是互相的,最后再乘二即可 若一个点不是割点:只有(n-1)*2次拜访会受影响 #include<cstdio> #define LL long long #define N 100010 #define M 1000010 #define min(a,b) ((a)<(b)?(a):(b)) int n,m,dfn[N],low[N],size[N…
题目链接 题意:一个无向联通图,求删去每个点及其所有边后有多少有序点对的连通性发生了变化. Tarjan求割点的例题.. 如果当前点不是割点,那么它对整个图的连通性不产生影响,只有自己与其他\(n-1\)个点的连通性发生了变化,故答案为\((n-1)\times2\). 如果当前点是割点,那么除了自身外,它所连接的所有连通块和其他连通块之间的连通性都发生了变化,故答案为: 设\(size[u]\)表示以u为根的连通块的大小,与当前点相连的共有\(k\)个连通块, \[ans=\sum_{i=1}…
[题解] 线段覆盖问题.线段树或者并查集都可以.不离散化居然能过? #include<cstdio> #include<algorithm> #define N 10000010 #define rg register using namespace std; int n,m,ans,l[N],r[N],fa[N]; inline int read(){ int k=0,f=1; char c=getchar(); while(c<'0'||c>'9')c=='-'&a…
题面 设\(dp_i\)表示以\(i\)为根节点时所有节点的深度之和. 首先以 \(1\) 为根求出所有点深度之和\(dp_1\),并预处理每个点的子树大小. 设 \(v\) 是 \(u\) 的孩子,考虑根从 \(u\) 移动到 \(v\) 对 \(dp_v\) 产生的影响. 不难发现,\(v\) 子树内所有点深度 \(−1\),其余点深度 \(+1\). 即 \(dp_v = dp_u − size_v + (n − size_v)\). 再 \(\text{DFS}\) 一次即可求出所有的…
题目描述 最近 \text{lxhgww}lxhgww 又迷上了投资股票,通过一段时间的观察和学习,他总结出了股票行情的一些规律. 通过一段时间的观察,\text{lxhgww}lxhgww 预测到了未来 TT 天内某只股票的走势,第 ii 天的股票买入价为每股 AP_iAPi​,第 ii 天的股票卖出价为每股 BP_iBPi​(数据保证对于每个 ii,都有 AP_i \geq BP_iAPi​≥BPi​),但是每天不能无限制地交易,于是股票交易所规定第 ii 天的一次买入至多只能购买 AS_i…
//只能写出裸的动规,为什么会有人能想到用单调队列优化Orz 题目描述 最近lxhgww又迷上了投资股票,通过一段时间的观察和学习,他总结出了股票行情的一些规律. 通过一段时间的观察,lxhgww预测到了未来T天内某只股票的走势,第i天的股票买入价为每股APi,第i天的股票卖出价为每股BPi(数据保证对于每个i,都有APi>=BPi),但是每天不能无限制地交易,于是股票交易所规定第i天的一次买入至多只能购买ASi股,一次卖出至多只能卖出BSi股. 另外,股票交易所还制定了两个规定.为了避免大家疯…
题目描述 P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1...N的N件玩具,第i件玩具经过压缩后变成一维长度为Ci.为了方便整理,P教授要求在一个一维容器中的玩具编号是连续的.同时如果一个一维容器中有多个玩具,那么两件玩具之间要加入一个单位长度的填充物,形式地说如果将第i件玩具到第j个玩具放到一个容器中,那么容器的长度将为 x=j-i+Sigma(Ck) i<=K<=j…
题目描述 一个含有n项的数列(n<=2000000),求出每一项前的m个数到它这个区间内的最小值.若前面的数不足m项则从第1个数开始,若前面没有数则输出0. 输入格式: 第一行两个数n,m. 第二行,n个正整数,为所给定的数列. 输出格式: n行,第i行的一个数ai,为所求序列中第i个数前m个数的最小值. 输入样例#1: 6 2 7 8 1 4 3 2输出样例#1: 0 7 7 1 1 3 单调队列模板题 用一个队列维护第i个数前m个最小值的位置注意在判断的时候要保持队列非空,否则会导致在队列为…
纯板子题,入队时保证单调性,即单调栈,出队保证题目条件,本题即窗口长度k,在入队出队时都可以维护信息 ; int buf[maxm], maxq[maxm], minq[maxm], ans1[maxm], ans2[maxm]; int main() { ios::sync_with_stdio(); , r1 = -, l2 = , r2 = -; cin >> n >> k; ; i < n; ++i) cin >> buf[i]; ; i < n;…