2014年2月24日

LA 并查集路径压缩

摘要: 题目大意:有n个节点,初始时每个节点的父亲节点都不存在。有两种操作I u v:把点节点u的父亲节点设为v,距离为|u-v|除以1000的余数。输入保证执行指令前u没有父亲节点。E u:询问u到根节点的距离。分析:并查集加路径压缩。#include#include#include#includeusing namespace std;const int maxn=20010;int f[maxn],d[maxn];int findset(int x){ if(f[x] !=x) { int root=findset(f[x]); d[x]+=d[f[x]]... 阅读全文

posted @ 2014-02-24 20:55 雄.. 阅读(148) 评论(0) 推荐(0)

LA 3644 简单并查集

摘要: 题目大意:有一些简单的化合物,每个化合物由两种元素组成,把这些化合物按顺序装车,若k个化合物正好包含k种元素,那么就会爆炸。避免爆炸,有些化合物就不能装车。求有多少个不能装车。题目分析:若k个化合物正好包含k种元素,那么就会爆炸。我们把每种元素看成一个顶点,每种化合物看成一条边,若有环存在的时候正好是爆炸的情况,所以避免成环记录不能放的数量就行了。#include#includeusing namespace std;const int maxn=100010;int f[maxn];int findset(int x){ return f[x]==x?x:f[x]=findset(f[x]) 阅读全文

posted @ 2014-02-24 17:07 雄.. 阅读(299) 评论(0) 推荐(0)

导航