随笔分类 - 数据结构 - 并查集
摘要:题意:8个方向如果能够连成一块就算是一个连通块,求一共有几个连通块。分析:网上的题解一般都是dfs,但是今天发现并查集也可以解决,为了方便我自己理解大神的模板,便尝试解这道题目,没想到过了。。。 1 #include 2 #include 3 #include 4 #include ...
        阅读全文
                
摘要:题意:给n个节点m条带权值边的无向图。然后q个问题,每次询问点对的数目,点对需要满足的条件是:1)连通;2)其路径的最大权值不能超过询问值。分析:如果没次询问一次,dfs一次,很可能超时,因此可以用并查集。离线处理,把边按权值排序,把问题按大小排序。然后离线的过程就是不断向图中加边的过程。比如样例如...
        阅读全文
                
摘要:题意:思路:topo+并查集 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 vector web[100010]; 8 int p[100010],n,m,sum,f[1000...
        阅读全文
                
摘要:题意:有两种性别,每组数据表示是男女朋友,判断输入的几组数据是否有同性恋思路:http://blog.csdn.net/iaccepted/article/details/24304087分组并查集:POJ 1182更复杂一点,但是比较相似;
        阅读全文
                
摘要:题意:给你11个图,每一个都有管道,然后给一张由这11个正方形中的n个组成的图,判断有几条连通的管道;思路:在大一暑假的时候做过这道题,当时是当暴力来做的,正解是并查集,需要进行一下转换;转换1:将子图中的管道转换为数字码,通为1,不通为0;转换2:一维--->二维,i,j换成在n*m中的第几个,p...
        阅读全文
                
摘要:今天刚发现,之前做的并查集只是贴模板基本就能过,题意改变一点,自己还是不懂,其实我还没入门呢。。。题意:食物链,A吃B,B吃C,C吃A,输入m组数据:1 a b:a 和 b 是同一类2 a b:a吃b判断这m组数据有几句是假话。假话条件:1)在2的情况下,a == b;2)a > n || b > ...
        阅读全文
                
摘要:并查集模板: 1 #include 2 using namespace std; 3 int Rank[1001],x,y; 4 int v[1001]; 5 //初始化 x 集合 6 void init(int n) 7 { 8 for(int i=0; iRank[y])35 ...
        阅读全文
                
 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号