克鲁斯卡尔算法(Kruskal's algorithm)是两个经典的最小生成树算法的较为简单理解的一个。这里面充分体现了贪心算法的精髓。大致的流程能够用一个图来表示。这里的图的选择借用了Wikipedia上的那个。很清晰且直观。首先第一步,我们有一张图,有若干点和边例如以下图所看到的:第一步我们要做...
分类:
编程语言 时间:
2014-10-11 17:40:45
阅读次数:
208
求一个生成树,使得最大边权和最小边权之差最小。由于数据太小,暴力枚举下界,求出相应的上界。最后取min即可。 1 #include 2 #include 3 #include 4 using namespace std; 5 int n,m,fa[101],rank[101]; 6 void cle...
分类:
其他好文 时间:
2014-10-11 17:29:55
阅读次数:
146
不用Matrix-tree定理什么的,一边kruscal一边 对权值相同的边 暴搜即可。将所有方案乘起来。 1 #include 2 #include 3 using namespace std; 4 int n,m; 5 struct Disjoint_Set 6 { 7 int fa[1...
分类:
Web程序 时间:
2014-10-11 16:55:06
阅读次数:
232
题目大意:给定一棵树(直接给树,不是给图求生成树!),求每条边权值*两边点数之差的和
BFS水过即可
其实DFS也能过。。。系统栈可能有些不充裕,我们可以利用内嵌汇编手动开大系统栈 详见代码
这题读入优化可以优化掉4s左右
#include
#include
#include
#include
#define stack_size (20001000)
#define M 1001001
...
分类:
其他好文 时间:
2014-10-10 18:45:30
阅读次数:
139
#include#include#include#include#define MAX 102void read();using namespace std;int map[MAX][MAX],best[MAX],n;bool visit[MAX];int main(){ //freopen(...
分类:
其他好文 时间:
2014-10-10 12:47:34
阅读次数:
172
来源:dlut oj1105: Zhuo’s DreamTime Limit: 1 Sec Memory Limit: 128 MBSubmit: 40 Solved: 14[Submit][Status][Web Board]DescriptionZhuo is a lovely boy and ...
分类:
其他好文 时间:
2014-10-10 12:30:54
阅读次数:
212
题目大意:给定一个n个点m条边的无向连通图,k次询问两点之间所有路径中最长边的最小值
LCT的裸题!首先维护一个动态的最小生成树,然后每次加入边时删除两点间路径上权值最大的边!最后询问时直接求x到y链上的最大权值即可!水爆了!!
。。。好吧开玩笑的 真正的题解见http://blog.csdn.net/popoqqq/article/details/39755703
我只是闲得无聊水一发LC...
分类:
Web程序 时间:
2014-10-09 16:48:58
阅读次数:
262
题目大意:给出一个无向边,很多询问,问x,y两地之间的最长路最短是多少。
思路:乍一看好像是二分啊。的确这个题二分可以做,但是时间会慢很多,有的题直接就T掉(NOIP2013货车运输)。其实这个题的模型就是最小瓶颈路模型。解法就是把无向图变成一个最小生成树,然后两点之间的最长路就是满足题意的答案。
CODE:
#include
#include
#include ...
分类:
Web程序 时间:
2014-10-09 15:08:38
阅读次数:
241
Codeforces Round #270
题目链接
A:我是筛了下素数,其实偶数只要输出4和x - 4,奇数输出9和x - 9即可
B:贪心的策略,把时间排序后,取每k个的位置
C:贪心,每次遇到一个人尽量让他用字典序小的,如果不行就大的,如果还是不行就是矛盾了
D:先判断原来矩阵的对角线,和是否是对称矩阵,求出最小生成树后,dfs n次求出每两点之间的距离,然后你...
分类:
其他好文 时间:
2014-10-08 16:02:45
阅读次数:
206