PKU . 2492 A Bug’s Life(並查集的應用)

來源:互聯網
上載者:User

Source Code</p><p>Problem: 2492 User: zhouxc<br />Memory: 416K Time: 1266MS<br />Language: G++ Result: Accepted </p><p>Source Code<br />#include "iostream"</p><p>using namespace std;</p><p>int n,m,x,y,test;<br />int p[2001],rank[2001],opp[2001];</p><p>void Make_set()<br />{</p><p> for(int i=1;i<=n;i++)<br /> {<br /> p[i]=i;<br /> opp[i]=-1;<br /> rank[i]=0;<br /> }<br />} </p><p>int Find_set(int a)<br />{<br /> if(p[a]!=a)<br /> p[a]=Find_set(p[a]);<br /> return p[a];<br />} </p><p>void Union(int a,int b)<br />{ </p><p> a=Find_set(a);<br /> b=Find_set(b);<br /> // printf("%d %d/n",a,b);<br /> if(rank[a]>rank[b])<br /> p[b]=a;<br /> else if(rank[a]<rank[b])<br /> p[a]=b;<br /> else<br /> {<br /> p[b]=a;<br /> rank[a]++;<br /> }<br />} </p><p>int main()<br />{</p><p> int cunt=0;<br /> scanf("%d",&test);<br /> while(test--)<br /> {<br /> cunt++;<br /> scanf("%d%d",&n,&m);<br /> Make_set();<br /> bool flag=true;<br /> for(int i=1;i<=m;i++)<br /> {<br /> scanf("%d%d",&x,&y);</p><p> if(Find_set(x)==Find_set(y))<br /> flag=false;<br /> else<br /> {<br /> if(opp[x]!=-1)<br /> Union(y,opp[x]);<br /> if(opp[y]!=-1)<br /> Union(x,opp[y]);<br /> opp[x]=y;<br /> opp[y]=x;<br /> }<br /> }<br /> printf("Scenario #%d:/n",cunt);<br /> if(!flag)<br /> printf("Suspicious bugs found!/n/n");<br /> else<br /> printf("No suspicious bugs found!/n/n");<br /> } </p><p> return 0; </p><p>} </p><p>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.