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

c++實(shí)例研究

從0開始

  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
  104 隨筆 :: 0 文章 :: 20 評(píng)論 :: 0 Trackbacks

好久沒(méi)有ACM,對(duì)很多地方都有膽怯,看著并查集資料,這道題摸索了4個(gè)小時(shí),可見編碼能力有待大幅提高。
首先想到思路無(wú)疑是按題目中A,B,C分類方式,維護(hù)多個(gè)集合,再判斷集合關(guān)系,適當(dāng)合并。這種做法很直觀,但卻很麻煩。麻煩主要出現(xiàn)在維護(hù)集合間關(guān)系。當(dāng)兩個(gè)集合合并后,與合并集合相關(guān)集合的關(guān)系需要遞歸的維護(hù)。例如A-B, C-D,合并A,C后,B,D也需要合并。以元素抽象的集合操作麻煩。最后看題解上,維護(hù)的是有關(guān)系元素的集合,而不是同類型元素集合,并在關(guān)系集的結(jié)點(diǎn)中用相對(duì)偏移維護(hù)結(jié)點(diǎn)和根關(guān)系。合并時(shí),更新根結(jié)點(diǎn)關(guān)系,并在查找時(shí)更新結(jié)點(diǎn)關(guān)系。詳細(xì)內(nèi)容都可參考網(wǎng)絡(luò)上大部分實(shí)現(xiàn)。
理解了這種做法后,我不想用路徑壓縮,而想用相對(duì)關(guān)系樹來(lái)做。合并時(shí)更新作為孩子的結(jié)點(diǎn)的關(guān)系偏移量,在判斷關(guān)系時(shí)通過(guò)遍歷從結(jié)點(diǎn)到根的關(guān)系偏移量得到結(jié)點(diǎn)和總的根結(jié)點(diǎn)關(guān)系。

well 代碼分格越來(lái)越簡(jiǎn)練,明了。
less well 較費(fèi)時(shí)的地方:合并根結(jié)點(diǎn)計(jì)算相對(duì)偏移。mod運(yùn)算結(jié)果是負(fù)數(shù)。差錯(cuò)用了不少時(shí)間。

#include <stdio.h>
#include 
<stdlib.h>

#define MAXSIZE 50001

typedef 
struct _Node{
    
int p;
    
int r;
}
Node;

Node elem[MAXSIZE];
int N,K;

void initial()
{
    
int i;
    
for(i=1;i<=N;i++)
    
{
        elem[i].p
=i;
        elem[i].r
=0;
    }

}


int find(int x)
{
    
while(x!=elem[x].p)
        x 
= elem[x].p;
    
return x;
}


int relation(int x)
{
    
int r=0;
    
while(x!=elem[x].p){
        r 
+= elem[x].r;
        x 
= elem[x].p;
    }

    
return r%3;
}


int merge(int x, int y, int px, int py, int type)
{
    elem[px].r 
= (relation(y)-type-relation(x)+3)%3;
    elem[px].p 
= py;
}


int judge(int t,int x,int y)
{
    
int px,py;

    
if((x>N)||(y>N)) return 0;
    
if(t==1)
    
{
        px 
= find(x);
        py 
= find(y);
        
if(px!=py) {merge(x,y,px,py,0); return 1;}
        
return (relation(x)==relation(y));
    }

    
else
    
{
        px 
= find(x);
        py 
= find(y);
        
if(px!=py) {merge(x,y,px,py,1); return 1;}
        
//printf("%d==%d\n", ( relation(x)+1 ) %3, relation(y));
        return ( (( relation(x)+4%3)  ==  relation(y)  );
    }

}


int main()
{
    
int t, x, y;
    
int i,j;
    
int w;
    
    
//freopen("in.txt","r",stdin);
    
//freopen("out.txt","w",stdout);
    
    scanf(
"%d%d",&N,&K);
    initial();

    
    w
=0;
    
for(i=0;i<K;i++)
    
{
        scanf(
"%d%d%d",&t,&x,&y);
        
if(!judge(t,x,y))
        
{
            
//printf("t:%d,x:%d,y:%d\n",t,x,y);
            
//for(j=1;j<=5;j++)
            
//{
            
//    printf("j=%d,p=%d,r=%d\n",j,elem[j].p,elem[j].r);
            
//}
            w++;
        }

    }

    printf(
"%d\n",w);
    
return 0;
}


posted on 2010-10-23 14:14 elprup 閱讀(368) 評(píng)論(0)  編輯 收藏 引用 所屬分類: POJ

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


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲午夜小视频| 精品999久久久| 欧美一区二区三区在线观看视频 | 国产精品99久久久久久久vr | 欧美中文字幕在线| 一本色道婷婷久久欧美| 99热在这里有精品免费| 99亚洲伊人久久精品影院红桃| 亚洲乱码视频| 在线观看中文字幕不卡| 伊甸园精品99久久久久久| 国产精品永久| 精品成人在线视频| 一区二区成人精品| 久久久久久久久久久一区 | 亚洲色图自拍| 午夜精品免费| 欧美日韩高清不卡| 国产精品私拍pans大尺度在线| 国产欧美日韩一区二区三区在线 | 亚洲精选中文字幕| 亚洲在线免费观看| 免费欧美在线视频| 国产精品午夜国产小视频| 在线日韩精品视频| 亚洲影院免费观看| 欧美国产第一页| 亚洲伊人观看| 欧美日韩在线不卡| 99视频一区二区| 欧美刺激性大交免费视频| 亚洲欧美另类久久久精品2019| 免费的成人av| 激情综合色综合久久综合| 欧美夜福利tv在线| 99在线|亚洲一区二区| 欧美巨乳在线| 欧美精品18+| 亚洲国产裸拍裸体视频在线观看乱了中文 | 亚洲国产你懂的| 欧美91视频| 欧美精品网站| 亚洲午夜精品久久久久久app| 亚洲成人直播| 噜噜噜91成人网| 亚洲精品美女91| 艳妇臀荡乳欲伦亚洲一区| 欧美视频在线免费| 欧美一区二区观看视频| 久久久精品999| 亚洲精品乱码久久久久久日本蜜臀 | 亚洲理伦电影| 99视频精品在线| 国产日韩欧美视频| 亚洲国产三级| 国产亚洲a∨片在线观看| 欧美成人在线影院| 国产精品美腿一区在线看| 国产九九视频一区二区三区| 午夜精品一区二区三区在线播放 | 亚洲欧美日韩国产综合| 亚洲欧美国产精品桃花| 亚洲成色最大综合在线| 日韩视频免费在线| 黄网站免费久久| 亚洲图色在线| 一本久久综合亚洲鲁鲁| 久久久蜜桃精品| 噜噜噜在线观看免费视频日韩| 欧美三级视频在线播放| 亚洲国产第一页| 亚洲电影在线| 久久亚洲精品欧美| 久久国产欧美精品| 国产日韩综合一区二区性色av| 一本色道久久综合亚洲91| 亚洲九九九在线观看| 久久裸体艺术| 欧美国产日本韩| 亚洲欧洲日本在线| 欧美精品乱码久久久久久按摩 | 国模精品一区二区三区| 亚洲欧美乱综合| 久久这里有精品视频| 亚洲国产高清一区二区三区| 蜜桃视频一区| 亚洲一区二区三区精品视频| 久久gogo国模裸体人体| 在线成人免费观看| 久久久久国产精品午夜一区| 亚洲人成毛片在线播放| 亚洲视频免费观看| 国产精品国产三级国产普通话三级| 亚洲精品在线电影| 久久久噜噜噜| 亚洲一卡二卡三卡四卡五卡| 久久精品一二三| 亚洲美女网站| 国语自产精品视频在线看一大j8| 美女露胸一区二区三区| 亚洲视频在线播放| 91久久中文字幕| 可以看av的网站久久看| 欧美影院精品一区| 亚洲视频图片小说| 亚洲精品乱码久久久久久日本蜜臀 | 欧美精品一卡二卡| 久久精品中文字幕免费mv| 一本色道久久综合亚洲精品小说| 欧美a级一区| 免费在线观看一区二区| 久久久五月天| 美女日韩欧美| 美女主播一区| 欧美成人精精品一区二区频| 久久久www成人免费毛片麻豆| 亚洲一区二区在线观看视频| 99在线精品观看| 一区二区三区日韩欧美| 亚洲视频免费看| 销魂美女一区二区三区视频在线| 亚洲免费视频成人| 欧美一级片久久久久久久| 亚洲欧美日韩久久精品 | 亚洲一区黄色| 亚洲私拍自拍| 久久久久免费| 黄色精品在线看| 国产亚洲精品v| 亚洲日本成人在线观看| 亚洲一区二区三区国产| 久久xxxx精品视频| 亚洲国产导航| 午夜视频在线观看一区| 另类图片国产| 国产精品一二三四区| 亚洲丰满在线| 欧美一区二区三区播放老司机| 欧美va亚洲va国产综合| 在线视频欧美精品| 欧美福利一区二区| 欧美国产日韩xxxxx| 亚洲一区二区三区免费在线观看 | 欧美诱惑福利视频| 欧美日韩大陆在线| 亚洲福利视频免费观看| 午夜精品久久99蜜桃的功能介绍| 久久婷婷综合激情| 亚洲欧美文学| 国产欧美精品一区| 亚洲欧美日韩人成在线播放| 亚洲茄子视频| 欧美成人激情在线| 亚洲精品视频在线观看网站| 久久综合免费视频影院| 久久久www| 亚洲精品视频二区| 亚洲美女尤物影院| 国产精品豆花视频| 欧美一区二区日韩| 久久综合五月| 一本一本久久a久久精品综合妖精| 亚洲国产另类精品专区| 免费看亚洲片| 亚洲尤物精选| 久久精品1区| 日韩午夜在线观看视频| 一本色道精品久久一区二区三区| 欧美成人综合| 欧美精品一区在线播放| 99精品99| 久久久久久亚洲精品杨幂换脸| 亚洲国产1区| 亚洲一区二区四区| 亚洲人成久久| 亚洲欧美日韩一区二区三区在线| 亚洲国产精品电影| 亚洲欧美日韩综合aⅴ视频| 亚洲精品美女免费| 欧美一区二区三区四区在线观看地址| 伊人久久婷婷色综合98网| 亚洲视频狠狠| 亚洲欧美清纯在线制服| 亚洲综合不卡| 一区二区三区四区国产| 久久尤物电影视频在线观看| 久久国产精品72免费观看| 欧美视频在线播放| 9i看片成人免费高清| 日韩亚洲不卡在线| 欧美日韩精品二区第二页| 亚洲高清av在线| 亚洲激情国产| 欧美日本韩国| 一区二区免费在线观看| 一区二区三欧美| 国产精品九九久久久久久久| 亚洲作爱视频| 久久成人18免费观看| 国产欧美在线播放|