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

c++實(shí)例研究

從0開始

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

好久沒有ACM,對(duì)很多地方都有膽怯,看著并查集資料,這道題摸索了4個(gè)小時(shí),可見編碼能力有待大幅提高。
首先想到思路無疑是按題目中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)系樹來做。合并時(shí)更新作為孩子的結(jié)點(diǎn)的關(guān)系偏移量,在判斷關(guān)系時(shí)通過遍歷從結(jié)點(diǎn)到根的關(guān)系偏移量得到結(jié)點(diǎn)和總的根結(jié)點(diǎn)關(guān)系。

well 代碼分格越來越簡練,明了。
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 閱讀(371) 評(píng)論(0)  編輯 收藏 引用 所屬分類: POJ

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   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>
            国产精品国产精品| 午夜精品久久| 亚洲欧美一区二区视频| 亚洲精品美女久久久久| 午夜免费电影一区在线观看| 亚洲精品女av网站| 久久乐国产精品| 欧美制服丝袜| 国产精品久久久久久模特| 亚洲国产天堂久久综合网| 国产主播在线一区| 香蕉久久国产| 欧美专区在线| 国产精品你懂的在线欣赏| 99riav久久精品riav| 99视频精品全国免费| 欧美高清视频一二三区| 亚洲国产精品成人va在线观看| 韩国女主播一区二区三区| 欧美亚洲综合网| 欧美一区二区三区四区高清| 国产精品久久久久久av福利软件| 亚洲免费大片| 亚洲在线视频一区| 国产精品久久777777毛茸茸| 一区二区欧美日韩视频| 亚洲午夜黄色| 欧美视频在线不卡| 亚洲一级电影| 久久久99免费视频| 黄网站免费久久| 久久综合九九| 欧美成人中文字幕在线| 91久久黄色| 欧美连裤袜在线视频| 日韩一级二级三级| 午夜日韩在线| 国产一区日韩欧美| 久久在线视频| 亚洲精品三级| 午夜精品在线观看| 国产在线麻豆精品观看| 久久久久久久国产| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲精品乱码久久久久久| 欧美日韩成人免费| 亚洲午夜女主播在线直播| 久久久亚洲精品一区二区三区 | 欧美日韩国语| 一区二区三区四区国产精品| 欧美一进一出视频| 亚洲国产欧美另类丝袜| 欧美精品国产| 羞羞视频在线观看欧美| 欧美www视频在线观看| 一本大道久久精品懂色aⅴ| 国产精品腿扒开做爽爽爽挤奶网站| 亚洲欧美日韩在线不卡| 欧美电影免费观看高清完整版| 日韩午夜av| 国产中文一区二区三区| 欧美国产亚洲精品久久久8v| 亚洲在线免费| 亚洲国产精品免费| 欧美影院在线播放| 亚洲免费电影在线观看| 国产日韩亚洲欧美| 欧美日本精品在线| 久久国产毛片| 日韩一级黄色av| 裸体一区二区三区| 亚洲欧美大片| 亚洲精品国产系列| 国产日韩专区| 欧美视频一区二区三区| 久久久久久久成人| 亚洲欧美久久久久一区二区三区| 欧美激情亚洲视频| 久久蜜桃精品| 午夜精品剧场| 一本到高清视频免费精品| 在线免费不卡视频| 国产精品网站视频| 欧美日韩专区在线| 欧美大片va欧美在线播放| 久久成人国产| 午夜国产精品影院在线观看| 亚洲人体大胆视频| 欧美丰满少妇xxxbbb| 久久高清福利视频| 午夜精品视频| 亚洲一区二区三区涩| 99视频热这里只有精品免费| 亚洲国产精品嫩草影院| 国产揄拍国内精品对白| 国产女主播在线一区二区| 欧美特黄视频| 欧美日韩精品系列| 欧美精品一区二| 欧美成熟视频| 免费在线国产精品| 欧美成人福利视频| 裸体歌舞表演一区二区| 久久综合久色欧美综合狠狠| 久久精品女人| 久久久久国产精品午夜一区| 欧美在线free| 久久精品国产精品亚洲| 久久精品一本久久99精品| 久久超碰97人人做人人爱| 欧美在线播放视频| 久久久精品2019中文字幕神马| 欧美在线视频观看免费网站| 欧美在线精品一区| 久久精品视频导航| 久久久中精品2020中文| 玖玖玖国产精品| 欧美精品电影| 欧美日韩一级视频| 国产精品爽黄69| 国产在线国偷精品产拍免费yy| 国产一区自拍视频| 亚洲国产精品激情在线观看| 亚洲精品国产视频| 亚洲一区二区免费看| 性欧美大战久久久久久久久| 久久久福利视频| 免费在线视频一区| 亚洲激情自拍| 亚洲一区视频在线| 久久精精品视频| 麻豆久久婷婷| 欧美丝袜一区二区三区| 国产一区二区三区免费在线观看| 狠狠色狠狠色综合日日五| 亚洲激情av| 亚洲一区二区三区四区五区午夜 | 亚洲国产小视频在线观看| 亚洲免费观看在线视频| 亚洲欧美视频在线| 欧美成人免费大片| 国产精品理论片在线观看| 国产免费成人av| 亚洲国产日韩一区| 亚洲欧美成人网| 欧美xx视频| 日韩视频免费看| 久久激情五月婷婷| 欧美激情在线免费观看| 国产三区精品| 99精品视频免费观看| 久久aⅴ国产紧身牛仔裤| 亚洲国产精品成人综合| 亚洲欧美资源在线| 欧美激情一区二区三区蜜桃视频| 国产精品一区三区| 亚洲啪啪91| 久久久久一区| 中文久久乱码一区二区| 欧美暴力喷水在线| 国产综合久久久久久| 午夜欧美精品| 欧美福利视频在线| 国内外成人免费视频| 中国女人久久久| 免费亚洲一区| 午夜视频久久久久久| 欧美日韩网址| 亚洲欧洲一区二区在线播放| 久久成人18免费网站| 一区二区三区www| 欧美高清视频www夜色资源网| 国内精品模特av私拍在线观看| 亚洲午夜伦理| 亚洲日本在线观看| 欧美不卡在线视频| 在线播放日韩欧美| 欧美在线观看网站| 亚洲视频高清| 欧美视频在线一区二区三区| 91久久精品久久国产性色也91| 久久综合九九| 久久国产手机看片| 国产日韩精品视频一区| 性感少妇一区| 一区二区欧美国产| 欧美区一区二区三区| 亚洲美女区一区| 欧美激情影音先锋| 欧美成人官网二区| 亚洲日本va在线观看| 欧美电影在线观看完整版| 久久www免费人成看片高清| 国产麻豆视频精品| 欧美在线网站| 欧美在线视频a| 伊人婷婷久久| 亚洲第一网站| 欧美成人免费va影院高清| 91久久久久久久久|