Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
这个并查是路径压缩么? 怎么做路径压缩?In Reply To:有多少种颜色?怎么做hash Posted by:zerocool_08 at 2005-07-28 12:54:54 int GetRoot(int x){ if(colorset[x] < 0) return x; else return GetRoot(colorset[x]); } void Union (int a, int b){ int rootA = GetRoot(a); int rootB = GetRoot(b); if(rootA == rootB) return; if(colorset[rootA] <= colorset[rootB]){ colorset[rootA] += colorset[rootB]; colorset[rootB] = rootA; if(colorset[rootA] == -1*setsize){ printf("Possible\n"); exit(0); } } else { colorset[rootB] += colorset[rootA]; colorset[rootA] = rootB; if(colorset[rootB] == -1*setsize){ printf("Possible\n"); exit(0); } } } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator