F - The Suspects(2017-01-16)

題目大意
這道題是一道并查集的題,大概意思就是編號為0的人被認(rèn)為帶有SARS病毒,與他同一組的人有可能被傳染,而他們被傳染后可能再次傳染和他們同組的人;所以題目要求求出有多少人可能被傳染?
思路
將輸入的同組的人連起來,注意連的時候要把節(jié)點(diǎn)少的往節(jié)點(diǎn)大的樹上連,不然可能會退化成鏈表;然后再搜索和0同一棵樹上的人有多少;

代碼如下:

#include<stdio.h>
int pre[30005];
int n,m,k,a,b;
int find(int x)
{
    if(pre[x]==x) return x;
    else
    return find(pre[x]);
}
int Union(int x,int y)
{
    int fx=find(x);
    int fy=find(y);
    if(fy>fx)
    {
        pre[fy]=fx;
    }
    if(fy<fx)
    {
        pre[fx]=fy;
    }
}
void ini()
{
    for(int i=0;i<n;i++)
    {
        pre[i]=i;
    }
}
int main()
{
    
    while(~scanf("%d%d",&n,&m)&&(n||m))
    {
        ini();
        for(int i=0;i<m;i++)
        {
            scanf("%d",&k);
            scanf("%d",&a);
            for(int j=1;j<k;j++)
            {
                scanf("%d",&b);
                Union(a,b);
            }
        }
        int ans=0;
        for(int i=0;i<n;i++)
        {
            if(find(i)==0)
            {
                ans++;
            }
        }
        printf("%d\n",ans);
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 明明知道他是來找你拉票的沒事兒不找你的可我也不喜歡他啊啊說實(shí)話我現(xiàn)在真看不上他了雖然我也不咋地但是還是愿意幫他這個...
    做壞人可以啵閱讀 281評論 0 0
  • 特征用于在類之間共享接口和字段。類似于Java 8的接口。類和對象可以擴(kuò)展特征,但是特征不能實(shí)例化,因此也沒有參數(shù)...
    steanxy閱讀 581評論 0 0
  • 行程滿滿的一天 今天跟老公他們一起回來祭祖,領(lǐng)教了他們的類型之多~ 道教寶殿——墓地——宗祠牌位 然后又去了老公出...
    敏捷的魚兒閱讀 301評論 4 1
  • 糾結(jié) 一直很糾結(jié)自己的身材 每天看見鏡子里肥肥的身體,肉成圓形的臉蛋,就不想打開衣服挑衣服,就不想出門,害怕見人....
    虎毛毛閱讀 208評論 0 0
  • 點(diǎn)點(diǎn)滴滴的生活里,最平凡的細(xì)節(jié)加起來,就是幸福。寒冷的冬季暖暖的杏仁茶,充滿愛的味道。 杏仁:是內(nèi)服外用的美容佳品...
    黃楚涵Crystal閱讀 190評論 1 1

友情鏈接更多精彩內(nèi)容