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

[轉]zoj 3646 并查集

Posted on 2012-10-15 21:04 lenohoo 閱讀(383) 評論(0)  編輯 收藏 引用
轉自小yai
把b[][]數組上的每個位拆開成兩個點i和i',(不超過32位),另外新加兩個點0和1,如果確定某點i對應的是0,則i與0點合并,i'點與1點合并;如果確定某點i對應的是1,則i與1合并,i'與0合并;如果確定兩點i和j對應的位是相反的數,則i與j'合并,j與i'合并;如果確定兩點對應的位是相同的數,則i與j合并,i'與j'合并。
最近比較忙,所以題解比較水,所以具體還是看代碼吧。
因為要空出數給0點和1點,所以我從1到n而不是從0到n-1,所以奇偶性的判斷要換一下。
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 100000;
int p[maxn];
int b[505][505];
int n;
void init() {
    for(int i=0;i<(2*n+1)*32+100;i++) p[i] = i;   
}
int find(int x) {
    return x==p[x] ? x : p[x] = find(p[x]);   
}
void Union(int x,int y) {
    int a = find(x) , b = find(y);
    p[a] = p[b] = p[x] = p[y] = min(a , b);   
}
bool check() {
    for(int i=1;i<=n;i++) {
        for(int j=i+1;j<=n;j++)
            if(b[i][j] != b[j][i]) return 0;
        if(b[i][i] != 0) return 0;   
    }
    init();
    int m = 32 * n;
    for(int i=1;i<=n;i++)
        for(int j=i+1;j<=n;j++) {
            if(i % 2 == 0 && j % 2 == 0) {
                for(int k=0;k<32;k++) {
                    if(b[i][j] & (1<<k) == 0) {
                        int u = i*32+k , v = j*32+k;
                        if(find(u) == find(1) || find(v) == find(1) || find(u) == find(v+m)) return 0;
                        Union(u,0);
                        Union(v,0);
                        Union(u+m,1);
                        Union(v+m,1);
                    }   
                }   
            }   
            else if(i % 2 == 1 && j % 2 == 1) {
                for(int k=0;k<32;k++) {
                    if(b[i][j] & (1<<k)) {
                        int u = i* 32 + k , v = j*32+k;
                        if(find(u) == find(0) || find(v)==find(0) || find(u) == find(v+m)) return 0;
                        Union(u,1);
                        Union(v,1);
                        Union(u+m,0);
                        Union(v+m,0);   
                    }   
                }   
            }
            else {
                for(int k=0;k<32;k++) {
                    int u = i * 32 + k , v = j * 32 + k;
                    if(b[i][j] & (1<<k)) {
                        if(find(u) == find(v)) return 0;
                        Union(u,v+m);
                        Union(u+m,v);   
                    }
                    else {
                        if(find(u) == find(v+m)) return 0;
                        Union(u,v);
                        Union(u+m,v+m);   
                    }
                }   
            }
        }
    return 1;
}
int main() {
    while(~scanf("%d",&n)) {
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                scanf("%d",&b[i][j]);
        if(check()) puts("YES");
        else puts("NO");   
    }
    return 0;   
}

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


posts - 3, comments - 1, trackbacks - 0, articles - 16

Copyright © lenohoo

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美成人激情视频| 国产精品久久久久久模特| 91久久在线视频| 亚洲在线免费| 99国产精品久久久久老师| 久久精品主播| 久久成人综合网| 新67194成人永久网站| 亚洲一区二区三区视频| 欧美女同在线视频| 亚洲国产一区二区在线| 国产精品外国| 狠狠色狠狠色综合系列| 亚洲欧美视频在线观看| 欧美日韩亚洲一区三区| 亚洲精品国产日韩| 亚洲精品社区| 欧美日韩mv| 亚洲精品免费一二三区| 亚洲免费激情| 欧美日韩精品免费观看视频| 亚洲精品一区二区三区樱花| 欧美日韩高清在线| 亚洲精选91| 亚洲视频一起| 国产精品久久久久久久久久久久久久 | 亚洲第一页自拍| 亚洲国产激情| 欧美www视频| 亚洲精品久久嫩草网站秘色| 中文有码久久| 亚洲人成网站影音先锋播放| 国产精品wwwwww| 亚洲一区二区免费| 久久精品欧美日韩| 亚洲福利av| 欧美人妖在线观看| 亚洲午夜久久久| 久久久久久一区二区| 亚洲国产精品尤物yw在线观看| 欧美国产视频日韩| 亚洲在线黄色| 久久国产乱子精品免费女| 狠狠色狠狠色综合人人| 欧美电影专区| 亚洲天堂久久| 免费观看成人网| 国产精品久久二区二区| 亚洲欧美日本国产有色| 久久久久久久久岛国免费| 在线观看欧美精品| 欧美日韩国产一级片| 亚洲专区在线视频| 免费亚洲网站| 亚洲午夜性刺激影院| 国产精品xnxxcom| 久久久福利视频| 亚洲动漫精品| 欧美一级专区| 久久久久国产一区二区三区四区| 国产精品99久久久久久久久久久久| 国产精品免费在线| 毛片基地黄久久久久久天堂| 一本大道久久a久久精二百| 久久久久久综合网天天| 99精品国产99久久久久久福利| 国产日韩成人精品| 欧美精品福利在线| 欧美在线1区| 亚洲最新合集| 国产精品s色| 美女黄网久久| 午夜精品久久久久影视| 亚洲精品美女在线观看| 国产一区二区中文字幕免费看| 欧美日韩高清在线观看| 最新亚洲一区| 久久久久国色av免费观看性色| 一区二区三区久久久| 亚洲大片av| 国产一区二区三区精品久久久| 欧美视频官网| 久久成人18免费观看| 亚洲国产精品123| 国产亚洲aⅴaaaaaa毛片| 欧美日韩一区二| 欧美韩日一区二区| 久久人人97超碰国产公开结果| 久久久夜夜夜| 欧美一区二区三区视频在线观看| 一本色道久久88精品综合| 亚洲国内精品在线| 精品成人久久| 国内精品久久久久伊人av| 国产精品综合网站| 国产精品视频久久久| 国产精品久久久久秋霞鲁丝| 欧美视频中文在线看| 欧美日韩另类综合| 欧美另类在线播放| 欧美激情国产高清| 欧美精品在线免费观看| 久久久久99| 国产精品网红福利| 国产精品美女一区二区| 欧美人与性动交a欧美精品| 欧美成人午夜视频| 免费久久99精品国产自| 久久夜色精品国产欧美乱极品| 亚洲欧美影院| 欧美一级片在线播放| 欧美成人精品三级在线观看| 老司机午夜精品视频| 久久婷婷久久一区二区三区| 香蕉久久夜色精品国产| 欧美一区二区三区在线播放| 亚洲私人影院在线观看| 亚洲欧美国产一区二区三区| 在线午夜精品自拍| 亚洲欧美日韩国产中文| 亚洲视频一区| 久久精品国产亚洲一区二区三区| 亚洲伊人网站| 久久精品国产亚洲一区二区| 久久久久久久综合| 久久亚洲综合网| 欧美福利电影网| 欧美大片91| 99re66热这里只有精品3直播| 亚洲欧洲一区二区三区| 一区二区国产精品| 亚洲高清av| 一区二区三区高清| 午夜在线a亚洲v天堂网2018| 欧美伊人影院| 亚洲国产精品t66y| 国产精品第一区| 精品电影在线观看| 99riav久久精品riav| 日韩视频中文| 久久高清一区| 久久手机精品视频| 亚洲日本免费电影| 一区二区福利| 久久天堂国产精品| 久久精品在线观看| 欧美激情精品久久久久久蜜臀| 国产精品第2页| 国产视频一区三区| 亚洲免费激情| 午夜精品久久久久久久蜜桃app | 黄网动漫久久久| 在线视频观看日韩| 亚洲综合丁香| 久久成人羞羞网站| 99re66热这里只有精品3直播| 久久精品在线免费观看| 欧美日韩国产区| 国产女人水真多18毛片18精品视频| 韩国一区二区三区美女美女秀| 亚洲区欧美区| 先锋影音网一区二区| 亚洲欧美在线免费观看| 免费在线观看成人av| 中国成人黄色视屏| 久久精品国产欧美激情| 国产一区二区按摩在线观看| 亚洲电影成人| 在线视频亚洲| 久久久久久久久伊人| 国产精品丝袜xxxxxxx| 亚洲精选国产| 久久精品视频免费观看| aa国产精品| 久久精品免费看| 国产精品亚洲аv天堂网| 99在线精品视频| 久久天堂成人| 亚洲欧美日韩系列| 欧美国产日韩a欧美在线观看| 一色屋精品亚洲香蕉网站| 国内揄拍国内精品少妇国语| 亚洲综合日韩中文字幕v在线| 亚洲国产国产亚洲一二三| 亚洲欧美日韩中文播放| 欧美日韩第一区| 亚洲成人在线观看视频| 亚洲欧美国产精品桃花| 亚洲福利av| 麻豆亚洲精品| 亚洲国产精品va在线看黑人动漫| 在线综合视频| 99re66热这里只有精品3直播| 久久亚洲美女| 依依成人综合视频| 久久成人av少妇免费| 亚洲特级毛片| 国产精品久久久久国产精品日日| 亚洲精品一区中文| 亚洲欧洲一区二区天堂久久|