题目大意 链接 给你一张n个点m条边的无向图,有点权,每次选一个连通块,你可以将块内所有点的点权减一,当某个点点权减到零时就消失,问最少进行多少次操作可以使整张图消失。 \((1<=n<=10^5,1<=m<=2*10^5,T<=10,可能有重边)\) 思路 假设没有边,所有点都需要减点权遍才能减完 ...
分类:
系统相关 时间:
2020-09-04 17:13:09
阅读次数:
56
对于这题,我们发现1和3点是同类点,因此其实就是二分图染色,如果只有一个连通块,那么判断一下是否是二分图就行。 现在有多个连通块,因此我们还要判定一下能否把这些2分给这么多个连通块 因此可以做一下背包,先存一下每个连通图的信息,之后dp,除了维护可达性,还要维护一个把图的哪部分分给2 如果最后不能分 ...
分类:
其他好文 时间:
2020-08-15 22:35:03
阅读次数:
76
都退役了,做个锤子。 上接5 月做题记录 CF1354E 题 首先 1 和 2 能连,2 和 3 能连,1 和 3 不能连。 先不管数量限制,看什么时候无解。 只要不是二分图就无解。 现在可以考虑数量了,把每个连通块跑个二分图染色染成黑点和白点,先令每个连通块都是黑点比白点少。 把所有黑点染 2,如 ...
分类:
其他好文 时间:
2020-08-09 09:21:41
阅读次数:
77
题目链接: 考虑拿掉点1时点2的情况,设此时点2所在连通块共k各点,这k个点以及剩下的n-k个点分别处在一个连通块中,其方案数为F(k)*F(n-k),点2需在除去点1和2的点中取k-1个点构成连通块,故方案数为C(n-2,k-1),而这总共k个点与剩下除去点1的n-k-1个点必须通过点1才能连通, ...
分类:
编程语言 时间:
2020-08-06 13:14:47
阅读次数:
82
Strolling Cows 给定有 \(n\) 个点 \(n\) 条边的有向图,每个点的出度都为 $1$,求图中的最大环。 显然入度为 $0$ 的点不可能为最大环上的点,所以考虑删点。 然后遍历每个连通块记录最大即可。 (史上最短题解?) #include<cstdio> #include<cst ...
分类:
其他好文 时间:
2020-08-05 14:32:54
阅读次数:
313
bzoj4671 异或图(斯特林反演,线性基) 祭奠天国的bzoj。 题解时间 首先考虑类似于容斥的东西。 设 \(f_{ i }\) 为至少有 \(i\) 个连通块的方案数, \(g_{ i }\) 为正好有 \(i\) 个连通块的方案数。 那么有 \[ f_{ m } = \sum\limits ...
分类:
其他好文 时间:
2020-07-30 21:43:24
阅读次数:
71
Little W and Contest 思路:首先很显然是并查集去维护答案。 一开始,所有点都是独立的。那么设CF1 = 1的总个数。CF2 = 2的总个数 那么一开始ans = C(CF1,1)*C(CF2,2)+C(CF2,3). 那么考虑合并后怎么维护答案。 这里运用了容斥思想。 当我们合并 ...
分类:
其他好文 时间:
2020-07-29 10:20:09
阅读次数:
65
floodfill 1.算法分析 floodfill就是求出连通块的算法,一般可以采用dfs或者bfs,但是dfs容易爆栈,故而采用bfs为佳 2. 例题 acwing1097池塘计数 一块N * M的土地,其中有'W'和'.'组成,'.'为土地,'W'为水,水的八个方向可以连在一起形成池塘,问一块 ...
分类:
其他好文 时间:
2020-07-27 13:37:49
阅读次数:
56
Boruvka 生成树算法 Boruvka 算法的一句话思想便是: “从所有当前的连通块向其他连通块扩展出最小边,直到只剩一个连通块”,其中取最小边的贪心思想是 Kruskal 的主体,而向外扩展又是 Prim 的思想 —— 基于另外两种生成树算法,Boruvka 的正确性显然。 代码框架: whi ...
分类:
编程语言 时间:
2020-07-26 01:14:08
阅读次数:
71