
并查集
文章平均质量分 76
favomj
吃枣药丸
展开
-
混合图欧拉路径
1.并查集判断连通2.将每个单词取出首字母和尾字母,转换为一条边,然后加入对应的连通分量中。如果这个字母出现过,visit数组标记为true。同时起点出度加1,终点入度加1.3.判断一下:1)这个图必须是连通的,即根结点只有一个。如果不是,直接结束本次算法。2)如果这个图是连通的,判断每个结点的入度和出度情况。如果这个图是欧拉路,则每个顶点的出度等于入度。即out[i] =转载 2017-02-28 15:40:34 · 414 阅读 · 0 评论 -
1036 商务旅行
1036 商务旅行原创 2017-02-22 08:23:04 · 244 阅读 · 0 评论 -
1299 切水果
分析:用并查集保存位置,也可以用线段树#include #include #include #include using namespace std;#define maxn 500005int n , m;int fa[maxn];int ans ;void deal(int a,int b){ for(int i = a ; i <= b ; i ++){原创 2017-02-22 09:21:29 · 321 阅读 · 0 评论 -
1540 银河英雄传说
1540 银河英雄传说原创 2017-02-22 21:45:00 · 281 阅读 · 0 评论 -
带权并查集模板
题意:给你一系列区间和,判断给出的区间中有几个是不合法的分析:简单的带权并查集sum[i] 代表 从 i 到父节点的距离那么对于新加入的点 a , b 令 x = find(a),y=find(b),在这四个点中,只有 sum[y] 是未知的那么求出 sum[y] = sum[a] + x - sum[b] 至于 a-- ,个人认为是为了防止区间重合,实现左闭右开原创 2017-03-03 16:32:20 · 458 阅读 · 0 评论 -
POJ 1456
题意:产品有保质期和利润,一天卖出一个产品,求最大利润和分析:贪心肯定是要有的,所以排序,然后可以使用优先队列,并查集等方法解出(利用并查集来实现自动连接的链表,也是6了)#include #include #include #include using namespace std;#define maxn 100005int n;struct node{原创 2017-05-03 19:53:50 · 344 阅读 · 0 评论 -
poj 1733种类并查集+离散化
分析:http://blog.youkuaiyun.com/xiaoxiaoluo/article/details/7401172##include #include #include #include using namespace std;#define maxn 100005int n;int m;struct node{ int u,v; int x;};no原创 2017-05-06 16:59:25 · 253 阅读 · 0 评论