青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

poj 1182 食物鏈 并查集

   這是并查集最后一題,據說也是最經典的一題。經常前面幾題的訓練,這題的思路很快
就能想出來了。只需要對每個節點附加一個信息表示離根節點的距離,并且距離是模3循環的。
   注意合并時候保持距離變化的正確性。而且合并有2種情況,距離相同合并和距離不同合并。
分別對應于題目描述中的1和2操作。
   關鍵還是FindSet里面對距離nDis數組里面的修改,前面一直寫錯這個,wa了好幾次,還是
看隊友代碼才一眼發現我又把這里寫錯了。。。當前距離的更新還是等于當前距離加上前一個
節點的距離再模3,類似于前面幾題的更新方法。
   這種將有關系的節點放在一個并查集里面,再給每個節點附加其它信息描述其它關系的做法,
確實比較有效。。。并查集是應用于不相交集合的數據結構,看來某個時候卻有妙用啊。。。

   代碼如下:
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;

const int MAX = 50010;
int nN, nK;
int nSets[MAX];
int nDis[MAX];

void MakeSets(int nN)
{
    for (int i = 1; i <= nN; ++i)
    {
        nSets[i] = i;
        nDis[i] = 0;
    }
}

int FindSet(int nI)
{
    if (nSets[nI] != nI)
    {
        int nPre = nSets[nI];
        nSets[nI] = FindSet(nSets[nI]);
        nDis[nI] = (nDis[nPre] + nDis[nI]) % 3;
    }
    return nSets[nI];
}

int main()
{
    int nAns = 0;
    int nOper, nX, nY;
    
    scanf("%d%d", &nN, &nK);
    MakeSets(nN);
    while (nK--)
    {
        scanf("%d%d%d", &nOper, &nX, &nY);
        if (nX > nN || nY > nN || nOper == 2 && nX == nY)
        {
            ++nAns;
        }
        else
        {
            if (nOper == 1)
            {
                int nA = FindSet(nX);
                int nB = FindSet(nY);
                if (nA == nB)
                {
                    if (nDis[nX] != nDis[nY])
                    {
                        ++nAns;
                    }
                }
                else
                {
                    nSets[nB] = nA;
                    nDis[nB] = (nDis[nX] - nDis[nY] + 3) % 3;
                }
            }
            else
            {
                int nA = FindSet(nX);
                int nB = FindSet(nY);
                if (nA == nB)
                {
                    if ((nDis[nX] + 1) % 3 != nDis[nY])
                    {
                        ++nAns;
                    }
                }
                else
                {
                    nSets[nB] = nA;
                    nDis[nB] = (nDis[nX] + 1 - nDis[nY] + 3) % 3;
                }
            }
        }
    }
    printf("%d\n", nAns);

    return 0;
}

   

posted on 2012-10-10 20:51 yx 閱讀(1289) 評論(0)  編輯 收藏 引用 所屬分類: 數據結構

<2012年10月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

導航

統計

公告

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

me

好友

同學

網友

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲色在线视频| 久久久久青草大香线综合精品| 亚洲欧美国产视频| 99精品视频一区| 亚洲女人小视频在线观看| 欧美一区免费视频| 久久久亚洲欧洲日产国码αv| 久久久99久久精品女同性| 久久天堂成人| 亚洲激情欧美激情| 亚洲激情电影在线| 午夜精品国产更新| 美女性感视频久久久| 欧美日韩国产综合视频在线观看中文| 欧美香蕉大胸在线视频观看| 狠狠色丁香婷综合久久| 99热这里只有精品8| 久久国产乱子精品免费女| 欧美国产日韩精品| 亚洲一区二区三区在线看| 狂野欧美激情性xxxx| 欧美日韩亚洲一区二区三区在线 | 欧美日韩123| 国产精品亚洲欧美| 亚洲精品久久在线| 久久福利资源站| 亚洲精品久久| 久久国产精品一区二区| 欧美视频第二页| 亚洲国产精品福利| 欧美中文在线字幕| 99精品欧美| 欧美xart系列高清| 很黄很黄激情成人| 欧美亚洲色图校园春色| 亚洲激情一区| 久久亚洲综合网| 久久成人精品视频| 亚洲尤物影院| 欧美黄色精品| 国产三级精品在线不卡| 亚洲深爱激情| 久久精品91久久久久久再现| 亚洲精品少妇| 久久躁狠狠躁夜夜爽| 国产精品一区二区三区久久| 99国产精品国产精品毛片| 免费日本视频一区| 欧美一区影院| 国产欧美午夜| 先锋a资源在线看亚洲| 亚洲美洲欧洲综合国产一区| 免费一区二区三区| 怡红院精品视频在线观看极品| 午夜久久美女| 亚洲专区一二三| 国产精品v欧美精品v日本精品动漫| 1000部精品久久久久久久久| 久久国产88| 午夜精品在线看| 国产欧美在线| 久久福利视频导航| 欧美一激情一区二区三区| 国产精品久久久久久久久久妞妞| 日韩图片一区| 在线亚洲观看| 国产精品美腿一区在线看| 午夜精品久久久久久久男人的天堂 | 夜夜嗨av一区二区三区网站四季av | 日韩午夜高潮| 亚洲美女免费精品视频在线观看| 欧美国产三级| 一区二区三区毛片| 亚洲天堂av在线免费观看| 国产精品极品美女粉嫩高清在线| 亚洲视频二区| 亚洲一区激情| 黑人一区二区三区四区五区| 久久在线免费视频| 欧美激情精品久久久久久黑人| 亚洲三级视频| 一区二区三区久久| 国内成人在线| 亚洲国产成人久久综合| 欧美巨乳在线| 午夜精品久久久久久久99热浪潮| 久久婷婷久久一区二区三区| 在线视频欧美日韩| 一区二区三区色| 国产精品人成在线观看免费 | 国产精品综合不卡av| 久久久精品国产99久久精品芒果| 久久蜜臀精品av| 这里只有精品视频在线| 欧美一区二区三区免费大片| 亚洲欧洲日本专区| 亚洲自拍三区| 亚洲精品中文字| 亚洲欧美一区二区视频| 91久久亚洲| 亚洲一区免费看| 亚洲人成免费| 欧美在线视频一区二区三区| 亚洲精品在线一区二区| 久久精品国产99国产精品澳门| 99www免费人成精品| 亚洲天堂网站在线观看视频| 在线免费一区三区| 欧美一级淫片播放口| 一本久道久久久| 久久午夜羞羞影院免费观看| 午夜免费日韩视频| 欧美日韩精品久久久| 男女激情视频一区| 国产欧美在线视频| 日韩网站在线观看| 在线国产精品播放| 欧美在线综合| 欧美在线亚洲| 国产精品亚洲综合久久| 亚洲免费观看| 亚洲肉体裸体xxxx137| 久久精品一区二区国产| 久久成人精品电影| 国产欧美日韩综合| 欧美亚洲一区三区| 香蕉精品999视频一区二区| 欧美日韩在线播放一区二区| 欧美岛国激情| 亚洲第一在线综合在线| 欧美一二三视频| 久久久91精品| 国语自产精品视频在线看抢先版结局| 亚洲小视频在线观看| 亚洲在线观看免费| 国产精品美女久久| 午夜精彩视频在线观看不卡| 欧美一激情一区二区三区| 国产精品色在线| 亚洲欧美另类在线| 欧美一区二区视频网站| 国产精品久久久一区二区| 亚洲一区二区三区高清 | 午夜视频一区| 新67194成人永久网站| 久久中文字幕导航| 久久国产精品99国产| 久久国产一区二区三区| 国产一区二三区| 久久精品一二三区| 欧美激情精品久久久久久| 亚洲高清自拍| 欧美精品一区二区视频| 在线视频精品一区| 性做久久久久久久免费看| 国产毛片一区二区| 久久精品国产久精国产思思| 欧美大色视频| 午夜国产精品视频免费体验区| 国产欧美欧美| 美女精品在线观看| 亚洲视频自拍偷拍| 久久精品男女| 亚洲日本成人| 欧美色综合网| 久久久成人网| 一区二区三区产品免费精品久久75| 欧美一区二区大片| 亚洲精品1234| 国产精品嫩草99av在线| 久久久精品午夜少妇| 亚洲日本成人| 久久视频在线看| 夜夜嗨av一区二区三区| 国产精品尤物福利片在线观看| 久久久高清一区二区三区| 亚洲精品乱码| 欧美电影在线播放| 亚洲你懂的在线视频| 在线观看久久av| 国产精品久久7| 欧美成黄导航| 国产欧美日韩一区二区三区在线观看| 久久阴道视频| 亚洲欧美激情四射在线日| 欧美激情一区二区三区高清视频| 亚洲一区www| 亚洲精品女av网站| 国产日韩欧美在线一区| 欧美日本不卡视频| 久久久久久久久久久久久久一区 | 久久狠狠亚洲综合| 在线视频亚洲欧美| 欧美激情1区2区| 久久免费偷拍视频| 亚洲男人av电影| 一本色道久久88亚洲综合88| 亚洲高清av| 狠狠色狠狠色综合日日tαg| 国产久一道中文一区|