摘要:
【LG3722】[HNOI2017]影魔 题面 "洛谷" 题解 先使用单调栈求出$i$左边第一个比$i$大的位置$lp_i$,和右边第一个比$i$大的位置$rp_i$。 考虑$i$对答案的贡献,当且仅当$i$作为区间$[x+1,y 1]$的最大值时,$i$才对点对$(x,y)$有贡献。 根据题意,第 阅读全文
摘要:
【LG3721】[HNOI2017]单旋 题面 "洛谷" 题解 20pts 直接模拟$spaly$的过程即可。 100pts 可以发现单旋最大、最小值到根,手玩是有显然规律的,发现只需要几次$link,cut$,那么我们维护原树的父子关系以及一颗$LCT$。 对于插入操作,由于插入的值肯定在前驱的右 阅读全文
摘要:
【LG3247】[HNOI2016]最小公倍数 题面 "洛谷" 题解 50pts 因为拼凑起来的部分分比较多,所以就放一起了。 以下设询问的$a,b$为$A,B$, 复杂度$O(nm)$的:将所有$a\leq A,b\leq B$的边两端,用并查集并起来,再看一看等于$A,B$的是否有端点在集合中即 阅读全文
摘要:
【LG3250】[HNOI2016]网络 题面 "洛谷" 题解 30pts 对于$m\leq 2000$,直接判断一下这个个点是否断掉一个交互,没断掉的里面取$max$即可,复杂度$O(m^2\log n)$。 另20pts 对于无删除操作的,用线段树维护, 我们将一条路径的补集全部打上那条路径重要 阅读全文
摘要:
【LG3245】[HNOI2016]大数 题面 "洛谷" 题解 60pts 拿vector记一下对于以每个位置为右端点符合要求子串的左端点, 则每次对于一个询问,扫一遍右端点在vector里面二分即可, ~~虽然空间是平方级别的但是因为数据水还是可以过60的~~ 100pts 记$[i,n]$表示的 阅读全文
摘要:
【LG3248】[HNOI2016]树 题面 "洛谷" 题解 因为每次你加入的点是原树上某一棵子树 那么我们一次加入一个点,代表一棵子树加到大树下面 那么我们要找到一个点在一个大点中用主席树在$dfs$序中$kth$即可 询问的话,先将所有的点权(深度)转化为边权 查询时先将两点跳到它所在大点的根 阅读全文
摘要:
【LG3249】[HNOI2016]矿区 题面 "洛谷" 题解 先平面图转对偶图, 建好了对偶图之后随意拿出一个生成树,以无边界的范围为根。 无边界的范围很好求,用叉积算出有向面积时,算出来是负数的就是无边界的范围。 然后标记所有的树边,记录生成树中每个子树的矿区面积和及面积平方和。 对于每一个询问 阅读全文
摘要:
【LG3246】[HNOI2016]序列 题面 "洛谷" 题解 60pts 对于每个位置$i$,单调栈维护它往左第一个小于等于它的位置$lp_i$以及往右第一个小于它的位置$rp_i$。 那么在左端点在$(lp_i,i]$,右端点在$[i,rp_i)$的所有区间中, 区间的贡献均为$a_i$(之所以 阅读全文