题意 给定\(n\)个带权点,第\(i\)个点的权值为\(w_i\),任意两点间都有边,边权为两端点权的异或值,求最小生成树边权和,以及方案数\(\bmod 10^9 + 7\) \(n \leq 10^5,W = max(w_i) \leq 2^{30}\) 题解 考虑按位贪心,我们从高到低考虑二进制第k位.每次把当前点集\(S\)分成第\(k\)位为\(0\)和第\(k\)位为\(1\)的两个集合,记为\(S_0, S_1\). 我们递归下去把这两个集合连成生成树,然后再找一条最小的跨集合的…
题目链接 分析: 这是一张完全图,并且边的权值是由点的权值$xor$得到的,所以我们考虑贪心的思想,考虑$kruskal$的过程选取最小的边把两个连通块合并,所以我们可以模仿$kruskal$的过程,倒着做$kruskal$,设定当前的最高位为$d$,我们把点集分为两个集合,$s$集合代表$d$位为$1$的点,$t$集合代表$d$位为$0$的点,就是$st$两个连通块,考虑这两个连通块的连接,把$t$连通块建出一棵$trie$树,然后枚举$s$集合中的点,去查找最小边,然后统计最小边的数量,递归…
传送门 我居然忘写题解啦!(记忆废) 不管怎么说,这题还算是一道好题啊……你觉得敦爷出的题会有水题么 …… 这题比较容易把人误导到Boruvka算法之类的东西上去(我们机房去刚D题的人一开始大多也被误导了),但仔细思考之后是可以发现问题的特殊性质的. 听说很多人是从Kruskal算法想到这道题的做法的?好吧我并不是,那我就写写我的思考过程好了…… 记得算导上有一道思考题,判断一个最小生成树算法的正确性.那个算法是这样的:把当前图的点集随意划分成两半,递归两半后选出连接两个点集的边中权值最小的一条…
原文链接https://www.cnblogs.com/zhouzhendong/p/51Nod1601.html 题目传送门 - 51Nod1601 题意 题解 首先我们考虑如何求答案. 我们将所有数字按照二进制位从高到低建到 Trie 上,按照 kruscal 思想,我们要保证先选较小的边. 于是我们很容易得出结论:在 Trie 上,设 $f(x) =$ 合并子树 $x$ 的所有叶子节点的代价,设 $L(x),R(x)$ 分别为 $x$ 的左右子树编号,则 $f(x)=f(L(x))+f(R…
最小生成树计数 (1s 128M) award [问题描述] 现在给出了一个简单无向加权图.你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树.(如果两颗最小生成树中至少有一条边不同,则这两个最小生成树就是不同的).由于不同的最小生成树可能很多,所以你只需要输出方案数对31011的模就可以了. [输入格式] 第一行包含两个数,n和m,其中1<=n<=100; 1<=m<=1000; 表示该无向图的节点数和边数.每个节点用1~n的整数编号.接下来的m行,每行…
  Prufer数列 Prufer数列是无根树的一种数列.在组合数学中,Prufer数列由有一个对于顶点标过号的树转化来的数列,点数为n的树转化来的Prufer数列长度为n-2.它可以通过简单的迭代方法计算出来.它由Heinz Prufer于1918年在证明cayley定理时首次提出. 目录 1将树转化成Prufer数列的方法 2将Prufer数列转化成树的方法     将树转化成Prufer数列的方法 一种生成Prufer序列的方法是迭代删点,直到原图仅剩两个点.对于一棵顶点已经经过编号的树T…
http://www.lydsy.com/JudgeOnline/problem.php?id=1016 (题目链接) 题意 求图的最小生成树计数. Solution %了下题解,发现要写矩阵树,150++的程序什么鬼.于是就蒯了hzwer的简便方法. 将边按照权值大小排序,将权值相同的边分到一组,统计下每组分别用了多少条边.然后对于每一组进行dfs,判断是否能够用这一组中的其他边达到相同的效果.最后把每一组的方案数相乘就是答案. 注意并查集不要压缩路径,不然的话不好回溯. 代码 // bzoj…
最小生成树计数 题目描述 现在给出了一个简单无向加权图.你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树.(如果两颗最小生成树中至少有一条边不同,则这两个最小生成树就是不同的).由于不同的最小生成树可能很多,所以你只需要输出方案数对$31011$的模就可以了. 输入 第一行两个数$n$和$m$,其中$1\le n\le 100,1\le m\le 1000$,分别表示无向图的节点数和边数.每个节点用$1 \ldots n$的整数编号.接下来$m$行,每行三个整数$a,…
1016: [JSOI2008]最小生成树计数 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 3517  Solved: 1396[Submit][Status][Discuss] Description 现在给出了一个简单无向加权图.你不满足于求出这个图的最小生成树,而希望知道这个图中有多少个不同的最小生成树.(如果两颗最小生成树中至少有一条边不同,则这两个最小生成树就是不同的).由于不同的最小生成树可能很多,所以你只需要输出方案数对31011的…
http://www.4gamer.net/games/216/G021678/20140714079/     连载第2回的本回,  Arc System Works开发的格斗游戏「GUILTY GEAR Xrd -SIGN-」解说的后篇送到了.前篇的最后预告的那样,本回,是只能看到Anime的3D图形的2D格斗游戏产生所采用的细小方法为中心的介绍.   变形的几何体,替换几何体 GUILTY GEAR Xrd -SIGN-的图形,看上去是Cel Anime风格,并不是什么都采用Toon Sh…