首先要将这个图连通,方法是通过扫描线+set求出每个连通块最高的点上方的第一条边,然后向交点连边。 然后把边拆成两条双向边,每次找到一条没走过的边,找到极角排序后它的反向边的后继,直到回到这条边。 根据叉积可以求出面积,如果面积非负,那么就说明找到了一个封闭区域。 然后再进行一次扫描线,找到一个点上 ...
分类:
其他好文 时间:
2016-03-30 01:39:12
阅读次数:
272
块状树裸题 块状树: 首先对树进行分块,分出的每一块都是一个连通块 通常的分块的方式如下: 1、父亲所在块不满,分到父亲所在块中 2、父亲所在块满,自己单独开一个块 (貌似有更为优越的分块方式? 注意这是不严格的分块,即每个块的大小不一定都是设定的阈值blo 对于这道题,首先修改和添加直接块内暴力就 ...
分类:
其他好文 时间:
2016-03-29 16:19:05
阅读次数:
209
1. 题目描述给定$n \times m, n、m \in [1, 10]$的方格,求不同形状的$[1 \cdots 10]$联通块的个数?所谓不同形状,表示不能通过平移、旋转、镜像实现相同的形状。2. 基本思路显然数据不大, 那么可以打表。首先考虑,这个表怎么打?不妨使用$cn$表示连通块数。那么 ...
分类:
其他好文 时间:
2016-03-26 15:32:58
阅读次数:
144
题目传送门 题意:从炮台射出一个球,三个及以上颜色相同的会掉落,问最后会掉落多少个球 分析:先从炮台找一个连通块,然后与顶部连接的连通块都不会掉落,剩下的就是炮台射出后跟随掉落的。
分类:
其他好文 时间:
2016-03-17 14:27:41
阅读次数:
122
最多只有一个连通块大小大于$nk$,所以用hash表进行BFS的时候只扩展$nk$步即可。 时间复杂度$O(n^2k)$。
分类:
其他好文 时间:
2016-03-16 19:16:53
阅读次数:
154
这个问题可以转变一下,先要知道有几个连通块,连通块之间肯定需要添加一条边, 还需要知道每个连通块内部需要添加几条边,这个问题等价于求一张图至少需要几笔画成,这个问题的答案是度为奇数的点的个数/2 #include<cstdio> #include<cstring> #include<cmath> #
分类:
其他好文 时间:
2016-03-11 13:52:10
阅读次数:
117
题目链接 本来想做强连通分量的题的 然而这个题太水了。。。随便搞搞就过了 一个连通块里有且仅有一个环,从所有入度为0的点出发找出环,记录答案 然后只有一个圈但没有“把”的再来考虑 1 #include<algorithm> 2 #include<iostream> 3 #include<cstdli
分类:
其他好文 时间:
2016-03-04 20:39:57
阅读次数:
208
首先答案一定是包含直径某个端点的一个连通块里所有边权值之和,设直径为$AB$,以$A$和$B$分别为根进行处理。 首先按照最长路法则将这棵树进行树链剖分,那么每个叶子的贡献为它与它所在链顶端的点的距离。 将叶子按贡献从大到小排序,并求出$h[x]$表示$x$子树内叶子排名的最小值。 对于询问$(x,
分类:
其他好文 时间:
2016-03-01 00:41:26
阅读次数:
302
这题做了几个小时,基本思路肯定是求两点路径中的割点数目,思路是tarjan缩点,然后以割点和连通块作为新节点见图。转化为lca求解。结合点——双连通分量与LCA。 1 /* 3686 */ 2 #include <iostream> 3 #include <sstream> 4 #include <
分类:
其他好文 时间:
2016-02-06 01:41:18
阅读次数:
291
题目链接 画画图发现如果某一个连通块中没有环那么就不可能存在方案 所以直接并查集维护一个连通块中有没有环 1 #include<algorithm> 2 #include<iostream> 3 #include<cstdlib> 4 #include<cstring> 5 #include<cst
分类:
其他好文 时间:
2016-02-05 01:03:31
阅读次数:
294