关闭

[最小生成树] Codeforces 632F Educational Codeforces Round 9 F. Magic Matrix & SRM 687 div1 AllGraphCuts

Magic Matrix把aa矩阵当成邻接矩阵,设bb为两点间路径最大值的最小值,那么ai,j≥bi,ja_{i,j}\ge b_{i,j},然后ai,j≤max(ai,k1,ak1,k2,⋯,akm,j)a_{i,j}\le \text{max}(a_{i,k_1},a_{k_1,k_2},\cdots,a_{k_m,j}),所以ai,j≤bi,ja_{i,j}\le b_{i,j} 那么a=b...
阅读(155) 评论(0)

[Prufer序列推论] SRM 697 div1 ConnectedStates

首先根据可图性判定定理,可以发现任意一个和为2(n−1)2(n-1)的度数序列都存在方案,然后就是对于一个度数序列求生成树个数,根据Prufer推论,答案应该是 ∑{di}(n−2)!∏ni=1(di−1)!\sum_{\{ d_i\}} {(n-2)!\over \prod_{i=1}^n (d_i-1)!}这个直接做是O(n3)O(n^3)优化成O(n2)O(n^2),参见大佬的题解// BEG...
阅读(141) 评论(0)

[动态最小生成树 CDQ分治] SnackDown 2017 Online Elimination Round #GQUERY Game Revisited

给每条边的权值赋为编号 那么就相当于一个做kruskal的过程 也就是一个最小生成树的过程 跟BZOJ 2001 [Hnoi2010]City 城市建设一样? 被阿爷教导了 多年前的模板又臭又长#include #include #include using namespace std; typedef pair abc...
阅读(197) 评论(0)

[字典树 最小树形图] Codeforces Gym 100307 NEERC 13 D. Dictionary

先把所有串建成字典树 字典树上的边 边权为1 然后如果两个点 一个是另一个的后缀 那么就另一个向那一个连0的边 跑一通最小树形图就好了 我不会 拷了个板子 输出方案就很蛋疼了#include #include #include #include using namespace std;inline char nc(){...
阅读(172) 评论(0)

[矩阵树定理 拉格朗日插值] TCO14 Round 3B TreeDistance

考虑两棵树,最少需要多少步把其中一棵变成另一棵? 可以发现答案就是不同的边数。即存在于A中而不存在于B中的边 数。 相当于要求:有多少带标号无根树,只有≤ kk 条原树中没有的边? 把原树中的边设成11,不在原树中的边设成xx,跑矩阵树定理,得出 来是一个nn阶多项式。 xi(i≤k)x_i(i ≤ k)前的系数和就是答案// BEGIN CUT HERE #include<coni...
阅读(181) 评论(0)

[Boruvka算法 曼哈顿距离最大生成树] 省选模拟赛 4 C. 树树树 mst

题目大意 求曼哈顿距离最大生成树 n≤100000n\leq 100000Boruvka算法是什么呢 也就是说 我们只要每次求一个连通块连出去的最远的边 把这些边都加入 只要这样 O(logn)O(\log n)就能得到一棵最大生成树每次求两个连通块之间最大边的时候,就是求 |xi−xj|+|yi−yj||x_i − x_j| + |y_i − y_j| 的最大值,分情况用set维护即可。但是神...
阅读(519) 评论(2)

[XOR最小生成树 期望 DP] BZOJ 4770 图样

myh的题解 orzz 实现起来有点细节要处理 可能是我太弱?我就这么写了个记忆化搜索 结果极限数据要3.5s 然后我就活生生的被卡常了#include #include #include #include #define read(x) scanf("%d",&(x)) using namespace std; type...
阅读(616) 评论(3)

[最小极差生成树 LCT || 二分答案 CDQ分治 并查集] Ural 2055 Urban Geography

把边按权值大小排序 然后用LCT按时间维护下最大生成树 就好了#include #include #include #include #include using namespace std;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf;...
阅读(182) 评论(0)

[矩阵树定理] BZOJ 3534 [Sdoi2014]重建

这里有个奇怪的词条 变元矩阵-树定理 也就是说 基尔霍夫矩阵的任意一个代数余子式是所有生成树的边权积的和 我们直接会得出∑T∏e∈Tpe\sum_T \prod_{e\in T} p_e 但这样不对 应该是 ∑T(∏e∈Tpe∏e∉T(1−pe))\sum_T ( \prod_{e\in T} p_e \prod_{e\notin T} (1-p_e) ) 所以我们变幻一下边权 求出∑T∏e...
阅读(260) 评论(0)

[矩阵树定理 模板题] BZOJ 1016 [JSOI2008]最小生成树计数 & HDU 4408 Minimum Spanning Tree

根据Kruscal算法的过程 我们可以得到一些结论 来自 这里 如果 A,BA, B 同为 GG 的最小生成树,且 AA 的边权从小到大为 w(a1),w(a2),w(a3),⋯w(an)w(a_1), w(a_2), w(a_3), \cdots w(a_n),BB 的边权从小到大为 w(b1),w(b2),w(b3),⋯w(bn)w(b_1), w(b_2), w(b_3), \cdots w...
阅读(143) 评论(0)

[曼哈顿距离最小生成树 模板题] POJ 3241 Object Clustering

我不会啊 老老实实去学 曼哈顿距离最小生成树 以一个点为原点建立直角坐标系,在每45度内只会向距离该点最近的一个点连边 这样只会有O(n)O(n)条边 怎么求最近点 是个二维偏序 排完序后 树状数组维护即可#include #include #include #include using namespace std; ty...
阅读(102) 评论(0)

[最小直径生成树 模板题] BZOJ 2180 最小直径生成树 & BZOJ 2182 [Spoj1479] TGK & Ural 1569 Networking the “Iset”

我不会啊 老老实实去学吧 求图的绝对中心 && 最小直径生成树 MDST 绝对重心呢 就是枚举每一条边 然后从这条边上某个坐标 到所有点的最小距离是一条折线 然后用这一组折线乱搞就好了怎么求MDST呢 从绝对重心跑一边最短路径树就好了#include #include #include #include using n...
阅读(161) 评论(0)

[LCT维护最小生成树 || CDQ分治 || 线段树 并查集 dfs树] Codeforces 603E #334 (Div. 1) E. Pastoral Oddities

这是个好题啊 这种数据结构题和dfs树有什么关系呢 唯一的关系就是 一个联通块当且仅当有偶数个点时能满足存在边集的一个子集每个点度数为奇数 或者更一般的结论 当一个联通块中每个点的度数奇偶性要求之和是偶数 那么存在 然后我们就转化为一些边使得每个联通块为偶数 这个出题人的标算我没看懂啊 LCT在线维护最小生成树? http://codeforces.com/blog/entry/21...
阅读(472) 评论(0)

[欧拉回路 最小生成树] IOI 2016 Roller Coaster Railraod

就是杜老师说的这样啦 #include #include #include using namespace std; typedef long long ll; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,...
阅读(444) 评论(0)

[伪位运算生成树] HDU 5629 Clarke and tree

求边权and和最大生成树 从高位到低位枚举 看这位为1的以及满足当前答案(答案上为1的位 则边权这一位也要为1)的边是否能构成一棵生成树 #include #include #include using namespace std; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) {...
阅读(117) 评论(0)

[BFS Tarjan_LCA 生成树] CERC 2016 H Hangar Hurdles

就是题解写的这样了 #include #include #include #include #define X first #define Y second using namespace std; typedef pair abcd; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf;...
阅读(351) 评论(0)

[XOR最小生成树 分治 Trie || Prim 堆] BNUOJ 52318 Be Friends

关于位运算生成树问题 尛焱轟在APIO上专门讲过 一些杂七杂八的东西 不过还是没怎么搞清楚 这个可以分治 显然对于最高位 为0的一团 为1的一团 那么只需要找最小的一条边连接 这个可以在其中一半枚举 另一半建成Trie在上面查询 然后分治到低一位 #include #include #include #include using namespace std; typ...
阅读(211) 评论(0)

[AND最大生成树 分治 Trie || Kruskal] UOJ Goodbye Yiwei C #176. 新年的繁荣

这个直接上题解吧 :http://vfleaking.blog.uoj.ac/blog/1244 Kruskal  用尛焱轟的话来说就是 枚举边权 可以发现一种边权最多只有O(m)个联通块需要合并 O(m 2^m a(n)) #include #include #include using namespace std; typedef long long ll; inli...
阅读(165) 评论(0)

[LCT 动态最大生成树] HDU 5398 GCD Tree

一个数肯定是和自己约数连更优 那么就是动态维护最小生成树 两个log #include #include #include #include #include #include using namespace std; typedef pair abcd; typedef long long ll; inline char nc(){ static...
阅读(135) 评论(0)

[最小k度限制生成树] POJ 1639 Picnic Planning

论文:汪汀--最小生成树问题的拓展 另见:http://blog.csdn.net/jarily/article/details/8779621 http://www.cnblogs.com/ylfdrib/archive/2010/08/21/1805505.html 主要思想:先求出最小m度限制生成树 由最小m度限制生成树找环得到最小m+1度限制生成树 实现么 Prime/Kruskal...
阅读(127) 评论(0)
30条 共2页1 2 下一页 尾页
    个人资料
    • 访问:264081次
    • 积分:11943
    • 等级:
    • 排名:第1328名
    • 原创:969篇
    • 转载:3篇
    • 译文:0篇
    • 评论:50条
    最新评论