![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
倍增
Cyhlnj
这个作者很懒,什么都没留下…
展开
-
Bzoj4569: [Scoi2016]萌萌哒
题目传送门Sol首先可以想到暴力并查集,直接把区间内每个数一一合并,最后求一遍联通块的个数乘法原理即可但显然会TLE,怎么办?最开始我想的是开线段树,每个区间分成log个后把线段树上对应节点的集合一一合并,后来发现太麻烦。。。而且好像还有问题。。。 这个时候只能Orz yyb用倍增加并查集来做 把区间拆成log个,最后用类似下放lazy的方法把子区间也一一对应合并区原创 2018-01-16 16:21:45 · 164 阅读 · 0 评论 -
Bzoj3551: [ONTAK2010]Peaks加强版
题面题目传送门在BytemountainsBytemountainsBytemountains有NNN座山峰,每座山峰有他的高度hihih_i 有些山峰之间有双向道路相连,共MMM条路径,每条路径有一个困难值,这个值越大表示越难走 现在有QQQ组询问 每组询问询问从点vvv开始只经过困难值小于等于xxx的路径所能到达的山峰中第kkk高的山峰,如果无解输出−1−1-1 N<=1...原创 2018-03-13 17:44:54 · 235 阅读 · 0 评论 -
Bzoj4242:水壶
Sol暴力就是每个建筑物跑一遍 BFSBFSBFS 然后最短距离建最小生成树,询问倍增 正解比较巧妙 每个点记录一个 disdisdis 表示这个点到最近建筑的距离,visvisvis 表示最近的是哪一个 当一个建筑物走到它时,如果有其它的走到了这个点,那么直接两个建筑物连边# include <bits/stdc++.h># define IL inline# de...原创 2018-06-12 07:39:04 · 241 阅读 · 0 评论