• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            M.J的blog

            algorithm,ACM-ICPC
            隨筆 - 39, 文章 - 11, 評(píng)論 - 20, 引用 - 0
            數(shù)據(jù)加載中……

            TOJ 1688. Corporative Network 并查集

                   這道題題意很難懂,大意是有N個(gè)公司,每個(gè)公司有一個(gè)center,最初每個(gè)公司的center都在自己公司,然后有M次操作,每次操作 A , B (A保證是一個(gè)集合的center,B不一定) 表示將A所在的集合并到B所在的集合,且B的center成為了A的center。每次操作后兩個(gè)公司的線的距離增加abs(A-B)%1000;
            Sample Input: (E  P表示查詢P距離自己center的線的長度,I   P  Q 表示合并 P ,Q);
            1
            4
            E 3
            I 3 1
            E 3
            I 1 2
            E 3
            I 2 4
            E 3
            O
            Sample Output:
            0
            2
            3
            5

            Code:
            #include <cstdio>
            #include 
            <iostream>
            #define M 20010
            using namespace std;

            struct Node{
                    
            int father,num;
            }a[M];
            void initial(int n){
                    
            int i;
                    
            for(i = 1;i <= n; i++){
                            a[i].father 
            = i;
                            a[i].num 
            = 0;
                    }
            }
            int find(int n){
                    
            int tep,m = n;
                    
            if(n == a[n].father) return n;
                    find(a[n].father);               
            //遞歸查找n的祖先
                    a[n].num += a[a[n].father].num;   //n的直需要更新(加上n的父親的值)
                    a[n].father = a[a[n].father].father;
            }
            int main()
            {
                    
            int T,n,i,j,k;
                    
            char order[3];
                    scanf(
            "%d",&T);
                    
            while(T--){
                            scanf(
            "%d",&n);
                            initial(n);
                            
            while(scanf("%s",order)){
                                    
            if(order[0]== 'O'break;
                                    
            if(order[0== 'E'){
                                            scanf(
            "%d",&k);
                                            find(k);
                                            printf(
            "%d\n",a[k].num);
                                    }
                                    
            else{
                                            scanf(
            "%d%d",&j,&k);
                                            
            int dis = abs(j-k)%1000;
                                            a[j].num 
            = dis;           //該值dis為j的值
                                            a[j].father = k;          //k成為了j的父親
                                    }
                            }
                    }
            }





            posted on 2010-07-05 20:48 M.J 閱讀(141) 評(píng)論(0)  編輯 收藏 引用


            只有注冊用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            久久亚洲国产成人影院| 久久精品女人天堂AV麻| 久久国产免费观看精品3| 99久久无色码中文字幕| 久久精品亚洲精品国产欧美| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 久久青青草原国产精品免费 | 麻豆成人久久精品二区三区免费| 久久精品国产亚洲AV嫖农村妇女| 国产精品99久久精品爆乳| 99精品国产99久久久久久97| 99久久超碰中文字幕伊人 | 日本久久久久亚洲中字幕| 精品久久久久久国产91| 久久人人超碰精品CAOPOREN | 久久亚洲国产成人精品无码区| 九九精品久久久久久噜噜| 99久久99久久精品国产片果冻| 亚洲国产精品久久电影欧美| 久久精品国产99久久丝袜| 国产精品久久久久影院色| 亚洲中文久久精品无码ww16| 久久久久国色AV免费看图片| 99999久久久久久亚洲| 蜜臀av性久久久久蜜臀aⅴ麻豆| 久久国产精品偷99| 成人免费网站久久久| 久久久女人与动物群交毛片| 精品国产日韩久久亚洲| 久久露脸国产精品| 欧美激情精品久久久久久久九九九 | 久久丫忘忧草产品| 婷婷久久综合九色综合绿巨人| 国产女人aaa级久久久级| 久久99免费视频| 国产999精品久久久久久| 色综合合久久天天综合绕视看 | 午夜精品久久影院蜜桃| 日本高清无卡码一区二区久久| 久久中文字幕无码专区| 久久人人爽人人爽人人爽|