摘要:        
http://poj.org/problem?id=1703	跟2492基本一样,不多说。code:#include<cstdio>usingnamespacestd;intf[100005];intr[100005];intn,m;intfind_Set(intx){inttemp;if(x==f[x]){returnx;}temp=f[x];f[x]=find_Set(temp);r[x]=(r[x]+r[temp])%2;//保持r[x]相对于根节点的稳定returnf[x];}voidUnion(intx,inty,intfx,intfy){f[fy]=fx;r[fy]=(    阅读全文
        posted @ 2012-01-30 22:32
追逐.
阅读(183)
评论(0)
推荐(0)
            
        
        
摘要:        
http://poj.org/problem?id=2524	依旧简单并查集,拿1611火速改了改火速提交,果断PE...把输出的最后一个空格放%d前面了,真活该不运行就交。	但是这题有个疑问,为什么按秩合并没有比直接合并快??code:#include<cstdio>intp[50005],r[50005];voidmake_set(intn){for(inti=0;i<n;i++){p[i]=i;r[i]=0;}}intfind_set(intx){if(x!=p[x])p[x]=find_set(p[x]);returnp[x];}voidunion_set(intx,    阅读全文
        posted @ 2012-01-30 21:48
追逐.
阅读(191)
评论(0)
推荐(0)
            
        
        
摘要:        
http://poj.org/problem?id=1611	简单入门并查集,以前已经做过,但是代码不太好。DP优化搞上火了,做做别的换换脑子...	以前代码Memory:356KTime:32MS#include<cstdio>usingnamespacestd;constintmaxn=30000;intfather[maxn+5];//记录父节点intlen[maxn+5];//记录以该点为根的集合元素的个数voidinit(intn){//并查集的初始化inti;for(i=0;i<n;i++){father[i]=i;len[i]=1;}}inlineintgetr    阅读全文
        posted @ 2012-01-30 21:33
追逐.
阅读(194)
评论(0)
推荐(0)
            
        
        
摘要:        
http://poj.org/problem?id=2392	背包没有容量,对于每种木块,其能达到的最大高度a便可做为其容量。先用二进制优化减少数量,然后根据a的值排序,01背包时可以以每种木块可达到的最大高度为最大容量。RE一次,因为val的大小只开了401...这里是个易错点啊,二进制优化后的数量不确定。代码:#include<cstdio>#include<cstring>#include<cstdlib>#defineMax(a,b)a>b?a:bintdp[40005];structBlock{inth;inta;}val[4001];int    阅读全文
        posted @ 2012-01-30 03:51
追逐.
阅读(225)
评论(0)
推荐(0)
            
        
        
摘要:        
http://poj.org/problem?id=1276	有一个Cash Machine,里面装有t种面值为n[i]的货币,每种有v[i]张。问在所换金额不超过cash元钱的情况下,所能换取的最大金额。	多重背包,转换成01背包来做,其中要用到二进制优化。《背包九讲》上讲的挺不错,在每件物品价值前加上系数,并保证这些系数的组合包括1..n的所有数且总和为n。代码:#include<cstdio>#include<cstring>#defineMax(a,b)a>b?a:bintdp[100005];intval[105];intmain(){intcash,n    阅读全文
        posted @ 2012-01-30 01:47
追逐.
阅读(183)
评论(0)
推荐(0)
 
                    
                     
                    
                 
                    
                 
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号