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

[轉]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>
            一区二区av在线| 国产一级一区二区| 国产视频在线观看一区二区| 亚洲乱码一区二区| 亚洲专区国产精品| 亚洲免费视频一区二区| 夜夜狂射影院欧美极品| 亚洲精品三级| 欧美剧在线观看| 欧美一级黄色录像| 欧美电影美腿模特1979在线看 | 国产一区二区三区四区| 老司机午夜精品视频在线观看| 久久婷婷国产综合尤物精品| 一区二区三区精品视频| 性欧美精品高清| 欧美成人资源| a4yy欧美一区二区三区| 亚洲一区二区三区视频播放| 夜久久久久久| 欧美日韩精品在线| 亚洲午夜女主播在线直播| 国产一区免费视频| 毛片基地黄久久久久久天堂| 国产日韩一区在线| 国产精品高清网站| 久久不射网站| 欧美高清视频| 黄色成人av网站| 亚洲精品韩国| 欧美在线观看网址综合| 亚洲国产精品一区二区www| 欧美剧在线观看| 久久国产一区二区三区| 亚洲午夜在线视频| 亚洲一区二区视频| 欧美国产日韩视频| 国产精品99一区二区| 久久综合一区二区| 91久久久亚洲精品| 麻豆freexxxx性91精品| 免费亚洲一区| 欧美黄色视屏| 欧美午夜电影网| 欧美日韩成人激情| 国产精品亚洲综合久久| 欧美福利视频在线| 欧美日韩精品一本二本三本| 免费日韩成人| 免费观看日韩| 久久www免费人成看片高清| 韩国三级电影一区二区| 欧美日韩激情网| 亚洲人成网站在线观看播放| 亚洲国产视频一区二区| 欧美成人精品h版在线观看| 欧美日本乱大交xxxxx| 国产精品自拍小视频| 国模套图日韩精品一区二区| 欧美在线高清| 欧美激情精品久久久久久免费印度 | 亚洲区中文字幕| 欧美系列一区| 国产精品欧美久久| 久久精品综合一区| 亚洲人线精品午夜| 亚洲激情av在线| 久久天堂成人| 久久久久久久成人| 久久大逼视频| 亚洲欧美精品在线| 欧美三级韩国三级日本三斤| 亚洲欧美精品中文字幕在线| 欧美亚洲综合另类| 国产精品毛片一区二区三区| 99国产精品99久久久久久粉嫩 | 91久久精品国产91久久| 欧美激情视频网站| 亚洲国产精品视频| 日韩视频一区二区三区在线播放| 亚洲国产精品激情在线观看| 免费国产一区二区| 亚洲欧美日韩另类| 亚洲精品一区二区三区不| 久久成人综合网| 欧美不卡视频一区| 亚洲欧美视频在线| 国产精品久久夜| 在线日韩精品视频| 日韩系列欧美系列| 亚洲欧洲一区二区天堂久久 | 美女主播精品视频一二三四| 91久久精品国产91性色tv| av不卡在线| 久久高清免费观看| 乱码第一页成人| 国产视频一区在线观看| 欧美成人免费小视频| 欧美国产日韩一区二区| 国语自产精品视频在线看一大j8| 亚洲欧美影音先锋| 亚洲欧美另类国产| 亚洲成色777777女色窝| 9i看片成人免费高清| 亚洲专区欧美专区| 午夜日韩在线观看| 亚洲国产日韩欧美在线99 | 亚洲乱码国产乱码精品精| 久久精品青青大伊人av| 欧美诱惑福利视频| 国产精品美女久久久久av超清 | 免费精品视频| 午夜伦理片一区| 小黄鸭精品aⅴ导航网站入口| 亚洲视屏一区| 午夜视频在线观看一区二区三区 | 亚洲人成在线观看| 午夜精品在线视频| 欧美影院久久久| 亚洲欧洲精品一区二区三区| 最近看过的日韩成人| 欧美精品在线视频| 99精品国产一区二区青青牛奶| 在线视频中文亚洲| 亚洲精品乱码久久久久久黑人| 亚洲男人av电影| 久久亚洲综合网| 国产啪精品视频| 亚洲人午夜精品| 久久久久国产精品一区二区| 99在线精品免费视频九九视| 久久日韩粉嫩一区二区三区| 国产精品一区二区在线观看网站 | 久久久天天操| 国产精品久久久久久av下载红粉| 在线欧美日韩国产| 亚洲第一黄网| 欧美日韩三级一区二区| 久久精品卡一| 牛牛影视久久网| 亚洲男人的天堂在线| 亚洲国产日韩欧美在线动漫 | 日韩视频一区二区在线观看| 亚洲欧美国产精品va在线观看 | 欧美色欧美亚洲高清在线视频| 国产色婷婷国产综合在线理论片a| 亚洲第一中文字幕| 久久久xxx| 美女图片一区二区| 欧美一级欧美一级在线播放| 亚洲电影免费在线 | 女人色偷偷aa久久天堂| 亚洲影院一区| 免费日韩成人| 欧美亚洲视频在线观看| 欧美日韩理论| 久久夜色精品国产欧美乱| 久久综合久色欧美综合狠狠| 亚洲欧美日韩系列| 欧美日韩在线播放一区二区| 一本不卡影院| 久久一区精品| 久久一二三区| 亚洲激情亚洲| 欧美99久久| 欧美日本中文| 久久久亚洲成人| 欧美成人一品| 嫩草伊人久久精品少妇av杨幂| 亚洲精品四区| 午夜视频精品| 午夜日韩在线观看| 麻豆国产va免费精品高清在线| 欧美午夜精品| 午夜精品短视频| 亚洲第一在线综合在线| 亚洲国产精品久久久久秋霞不卡| 久久野战av| 亚洲一区二区免费| 欧美一级播放| 亚洲精品日产精品乱码不卡| 欧美日韩一区高清| 99国产精品视频免费观看| 亚洲人成在线播放| 国产一区二区精品| 亚洲电影自拍| 亚洲国产高清aⅴ视频| 免费不卡在线视频| 欧美视频日韩| a4yy欧美一区二区三区| 亚洲精品少妇30p| 亚洲国产1区| 黄色一区二区三区四区| 亚洲女同性videos| 欧美亚洲一级片| 香蕉久久夜色| 中日韩午夜理伦电影免费| 女人色偷偷aa久久天堂| 久久久777| 久久美女性网|