
并查集
文章平均质量分 50
suikay
这个作者很懒,什么都没留下…
展开
-
2524解题报告
今早看到数据结构课本上有并查集,只是名字变了,MFSet(初步认为是MergeFindSet,大概就是并查集的英文名).恍然大悟,原来课本上也有好东西啊~中午回到寝室赶忙用二十分钟做了一道基础题,ac.现在把代码放上来纪念一下~#include int FindDad(int *parent,int b){ int a(b); // 找出最高的祖宗原创 2008-12-15 13:30:00 · 379 阅读 · 0 评论 -
2492解题报告
这道题是我ac的比较难的一道了,其中不仅要记录自己的父节点,还要用一个数组来记录父节点对应的异性父节点(怎么就这么拗口呢...),在将父节点的异性进行与该节点的异性的父节点进行合并(更拗口...)具体看代码~~#include #include int parent[2001];int aparent[2001];int FindParent(int a) {原创 2008-12-15 17:50:00 · 342 阅读 · 0 评论 -
1611解题报告
#include int FindParent(int *parent,int a){ while( parent[a] != a) a = parent[a]; return a;}void MergeSet(int *parent,int a, int b){ int t1 = FindParent(parent,a原创 2008-12-15 17:31:00 · 428 阅读 · 0 评论 -
2352解题报告
AccecptTime: 2008-12-16 21:45:55Language: G++Memory: 524KTime: 188MSErrors: NoAlgorithm: 树状数组#include #define add(x) a[x/1600]++;b[x/80]++;c[x/4]++;d[x]++;// 用a将数组分成1600元素一段 类似的分别原创 2008-12-16 22:08:00 · 343 阅读 · 0 评论 -
2236解题报告
今天继续练并查集,一路刷了好几题,现在把做的几个都补上.2236这道题主要考的是并查集,另外我用一个数组来储存好的点来减少部分无谓的搜索. #include #define CONNECT(x1,y1,x2,y2,max) (((x1 - x2) * (x1 - x2) +( y1 - y2)*(y1 - y2)) typedef struct data{ int原创 2008-12-15 17:24:00 · 337 阅读 · 0 评论 -
1861解题报告
AccecptTime: 2008-12-17 12:40:01Language: c++Memory: 384KTime: 94MSErrors: 3 WA + 1 RE + 3 TLEAlgorithm: 并查集 + sort()原创 2008-12-17 12:44:00 · 429 阅读 · 0 评论 -
1182解题报告
AccecptTime: 2008-12-17 16:45:59Language: C++Memory: 596KTime: 250MSErrors: 6 WAAlgorithm: 并查集 + 矢量原创 2008-12-17 16:47:00 · 369 阅读 · 0 评论 -
1988解题报告
AccecptTime: 2008-12-17 15:05:08Language: c++ Memory: 556KTime: 219MSErrors: 8 TLE + 4 REAlgorithm:原创 2008-12-17 15:11:00 · 323 阅读 · 0 评论 -
对并查集学习的总结
在poj上做了一些题,在贡献ac的同时,贡献了π(e^n)的wa,tl,ml和re。现在就来总结一下这一个多礼拜对并查集的感受,也把并查集的标程写出来以备后用。// 寻找集合的头元素// 并对路径进行压缩// notice: 在main里边要将parent全部初始化为-1int Find(int x){ if(parent[x] >= 0) { parent[x] = Find原创 2008-12-21 10:45:00 · 460 阅读 · 0 评论