【问题】
Kruskal算法求加权连通图的最小生成树的算法。kruskal算法总共选择n- 1条边,所使用的贪婪准则是:从剩下的边中选择一条不会产生环路的具有最小耗费的边加入已选择的边的集合中。注意到所选取的边若产生环路则不可能形成一棵生成树。kruskal算法分e
步,其中e 是网络中边的数目。按耗费递增的顺序来考虑这e 条边,每次考虑一条边。当考虑某条边时,若将其加入到已选边的集合中会出...
分类:
编程语言 时间:
2014-05-13 23:16:45
阅读次数:
610
import java.util.Scanner;
// 并查集 判断一个图中有几个联通块
public class UnionFind {
private int[] father;//
private int count;// 分量数量
public UnionFind(int N){
count=N;
father=new int[N];
for(int i=0;i<N...
分类:
其他好文 时间:
2014-05-11 03:03:44
阅读次数:
308
/*初始化并查集的所有集合 和根节点直接的关系 找到父节点
合并集合,并更新点和父节点直接的关系判断是否是真话 if 父节点不相等 true 加入集合中 if 相等 if() 判断在集合中与 根节点的关系对不对 对
true [加入集合]错 false 主函数: 创建集合 找到2点...
分类:
其他好文 时间:
2014-05-10 05:17:32
阅读次数:
319
刚开始做的时候用线段树做的,然后就跳进坑里了……因为要开方,所以区间的值都得全部变,然后想用lazy标记的,但是发现用不了,单点更新这个用不了,然后就不用了,就T了。然后实在不行了,看了别人的题解,原来是用树状数组+并查集的方法,唉……没想到啊!
因为开方之后多次那个数就会变成1了,所以是1的时候开方下去就没用了。树状数组更新的时候就把其更新的差更新即可,太机智了这题……
昨天做了,然后出错找...
分类:
其他好文 时间:
2014-05-09 22:35:22
阅读次数:
290
基本C/C++、STL(vector、set、map、queue、string、algorithm)枚举、贪心、递归、分治、递推、模拟构造、位运算、常数优化数据结构队列、堆、栈、链表排序(插入、冒泡、快速、归并、堆、桶、基数)二分查找、散列表、并查集、哈夫曼树排序二叉树、左偏树、平衡树(Splay/...
分类:
其他好文 时间:
2014-05-09 08:10:36
阅读次数:
338
先用并查集来判断图是否连通,然后再根据欧拉回路的出度和入度的性质来判断是否为欧拉回路。
关键是建边,我们可以把字符串看成是一条边,首字母为出发点,尾字母为目的点,建边。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#de...
分类:
其他好文 时间:
2014-05-07 07:49:15
阅读次数:
324
题目大意:
给出m个询问,问【l,r】之间的和 ,求出有多少次询问不和之前的矛盾的。
思路分析:
用并查集记录当前节点到根节点的和。
#include
#include
#include
#include
#define maxn 222222
using namespace std;
int set[maxn];
int sum[maxn];
in...
分类:
其他好文 时间:
2014-05-07 07:35:05
阅读次数:
386
http://acm.hdu.edu.cn/showproblem.php?pid=3038
这是一道并查集题目,这并查集感觉好难写,构思花了我很长很长时间,不过打码时间很短。考虑清楚之后明显快多了
#include
#include
#include
#include
#include
#include
#include
#define N 200010
using names...
分类:
其他好文 时间:
2014-05-07 04:03:06
阅读次数:
331
点击打开链接
Dragon Balls
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2577 Accepted Submission(s): 993
Problem Description
Fi...
分类:
其他好文 时间:
2014-05-07 02:45:21
阅读次数:
345
http://acm.hdu.edu.cn/showproblem.php?pid=1856这道题就是求一个集合里面最大的个数。
基本的并查集加一个步骤,将合并后的元素的个数保存在新的树根中。 1 #include 2 #include 3 #include 4 #define maxn
10...
分类:
其他好文 时间:
2014-05-07 00:47:33
阅读次数:
370