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

pku 1227 RoboContest 奇環判斷(黑白染色)

題意是這樣,有一個無向圖,在其中的k個點上有機器人,在每個時刻,機器人移動至與當前節點鄰接的任意一個節點。問有沒有可能在某個時刻所有的機器人移動到一個節點上。
我的思路是這樣的:
在圖連通的情況下,如果圖中有奇圈,那么任意一個機器人都能夠在偶數步和奇數步內到達任意一個節點,如果所有的機器人都能在偶數步或者奇數步里到達某個節點,那么就成立。因為圖中肯定有2圈,所以先到的機器人總可以用“來回走”的形式等后面的機器人。
這樣,算法就成型了:
1、判斷機器人所在的節點是否連通
2、判斷圖中是否有奇圈(二分圖的定義,只需黑白染色即可判斷)
3、如果有奇圈,則輸出YES,否則,這個圖就是一個二分圖,所有的機器人都能在偶數步或者奇數步里到達某個節點當且僅當所有的機器人都在同一類節點中。
還有點細節就是編號可能不是1,2,3..N這樣編的,所以要先hash處理下(我偷懶,直接用STL MAP了)
貼代碼
  1 # include <cstdio>
  2 using namespace std;
  3 # define N 105
  4 # include <vector>
  5 # include <cstring>
  6 # include <map>
  7 # include <queue>
  8 vector<int> g[N];
  9 int color[N];
 10 int n,k,c;
 11 map<int,int> refer;
 12 vector<int> ins[N];
 13 vector<int> target;
 14 bool make_color()
 15 {
 16    queue<int> q;
 17    memset(color,-1,sizeof(color));
 18    q.push(target[0]);
 19    color[target[0]]=0;
 20    while(!q.empty())
 21    {
 22      int top=q.front(),c=(color[top]?0:1);
 23      q.pop();
 24      for(int i=0;i<g[top].size();i++)
 25        if(color[g[top][i]]==-1)
 26        {
 27           color[g[top][i]]=c;
 28           q.push(g[top][i]);
 29        }
 30        else if(color[g[top][i]]==color[top])
 31          return false;
 32    }
 33    return true;
 34 }
 35 bool connect()
 36 {
 37    queue<int> q;
 38    memset(color,-1,sizeof(color));
 39    q.push(target[0]);
 40    color[target[0]]=0;
 41    while(!q.empty())
 42    {
 43      int top=q.front();
 44      q.pop();
 45      for(int i=0;i<g[top].size();i++)
 46        if(color[g[top][i]]==-1)
 47        {
 48           color[g[top][i]]=0;
 49           q.push(g[top][i]);
 50        }
 51    }
 52    for(int i=0;i<target.size();i++)
 53      if(color[target[i]]==-1)
 54        return false;
 55    return true;
 56 }
 57 int main()
 58 {
 59     int testcase;
 60     scanf("%d",&testcase);
 61     while(testcase--)
 62     {
 63         c=0;
 64         refer.clear();
 65         scanf("%d%d",&n,&k);
 66         for(int i=0;i<n;i++)
 67         {
 68           ins[i].clear();
 69           int id,num;
 70           scanf("%d%d",&id,&num);
 71           while(num--)
 72           {
 73              int t;
 74              scanf("%d",&t);
 75              ins[i].push_back(t);
 76           }
 77           refer[id]=c++;
 78         }
 79         for(int i=0;i<n;i++)
 80         {
 81            g[i].clear();
 82            for(int j=0;j<ins[i].size();j++)
 83              g[i].push_back(refer[ins[i][j]]);
 84         }
 85         target.clear();
 86         while(k--)
 87         {
 88            int t;
 89            scanf("%d",&t);
 90            target.push_back(refer[t]);
 91         }
 92         if(!connect())
 93           printf("NO\n");
 94         else if(!make_color())
 95            printf("YES\n");
 96         else
 97         {
 98             bool flag=true;
 99             for(int i=1;i<target.size()&&flag;i++)
100               if(color[target[i]]!=color[target[i-1]])
101                 flag=false;
102             if(flag) printf("YES\n");
103             else printf("NO\n");
104         }        
105     }
106     return 0;
107 }
108 


posted on 2010-11-05 13:21 yzhw 閱讀(355) 評論(0)  編輯 收藏 引用 所屬分類: graph

<2010年10月>
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456

導航

統計

公告

統計系統

留言簿(1)

隨筆分類(227)

文章分類(2)

OJ

最新隨筆

搜索

積分與排名

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲欧美日韩国产中文 | 国产综合色在线| 欧美日韩国产成人| 欧美国产免费| 欧美日韩另类视频| 国产精品国色综合久久| 国产精品丝袜久久久久久app| 国产精品九九| 国产综合香蕉五月婷在线| 精品成人a区在线观看| 亚洲激情网站免费观看| 一本久道久久综合婷婷鲸鱼| 亚洲一区二区成人| 久久久免费av| 亚洲人成免费| 亚洲欧洲日产国码二区| 一区二区三区产品免费精品久久75 | 亚洲一区黄色| 久久激情视频久久| 欧美激情在线播放| 国产日韩精品一区二区三区| 亚洲高清在线观看| 亚洲字幕一区二区| 免费亚洲视频| 亚洲午夜一二三区视频| 久久亚洲精品一区二区| 欧美午夜精品伦理| 在线免费不卡视频| 亚洲欧美日韩一区| 欧美激情第二页| 亚洲欧美电影在线观看| 欧美成人精品在线观看| 国产日韩一区二区三区在线播放| 亚洲精品在线二区| 久久免费视频网| 中国女人久久久| 欧美福利电影网| 精品动漫3d一区二区三区| 亚洲在线中文字幕| 亚洲国产免费| 久久久久国产免费免费| 国产精品久久久久久久久久直播 | 久久av一区二区| 欧美成人午夜免费视在线看片| 一区二区三区 在线观看视频| 久久这里只精品最新地址| 国产精品国产三级国产普通话蜜臀 | 久久精选视频| 一本大道久久精品懂色aⅴ| 久久婷婷综合激情| 国产一区二区三区成人欧美日韩在线观看 | 亚洲高清久久| 欧美中文在线视频| 欧美午夜视频| 日韩视频在线观看国产| 美女日韩在线中文字幕| 亚洲女女女同性video| 欧美高清在线视频| 亚洲成在人线av| 久久只有精品| 欧美一区网站| 午夜精品视频网站| 国产精品二区二区三区| 在线亚洲国产精品网站| 亚洲丰满在线| 美女91精品| 亚洲电影毛片| 欧美激情视频网站| 欧美aa国产视频| 亚洲国产成人porn| 欧美国产国产综合| 免费亚洲一区| 亚洲精品免费在线播放| 欧美电影免费观看高清| 久久久精品国产一区二区三区| 国产视频欧美| 久久久久久亚洲综合影院红桃| 性欧美1819sex性高清| 国产区欧美区日韩区| 欧美呦呦网站| 久久九九久久九九| 亚洲激情啪啪| 亚洲美女少妇无套啪啪呻吟| 欧美色123| 欧美一区二区三区婷婷月色 | 亚洲第一页中文字幕| 久久免费偷拍视频| 久久久精品一区| 亚洲黄色影院| 亚洲人体影院| 欧美视频一区二区在线观看| 亚洲欧美怡红院| 欧美诱惑福利视频| 亚洲激情自拍| 亚洲一区二区成人| 黄色日韩精品| 亚洲欧洲在线观看| 国产精品亚洲一区| 免费成人黄色| 欧美日本韩国一区二区三区| 亚洲欧美视频在线| 久久久国产91| 一区二区三区精品国产| 午夜精品视频在线观看| 亚洲精品乱码久久久久久久久| 一区二区欧美亚洲| 亚洲国产裸拍裸体视频在线观看乱了中文 | 狠久久av成人天堂| 亚洲国产精品黑人久久久| 欧美日本久久| 久久一区欧美| 欧美区在线播放| 久久久免费av| 欧美丝袜第一区| 免费国产一区二区| 国产精品美腿一区在线看| 欧美成人有码| 国产丝袜一区二区| 亚洲精品国精品久久99热一 | 亚洲美女精品一区| 性欧美暴力猛交69hd| av成人福利| 久久久水蜜桃av免费网站| 亚洲欧美国产一区二区三区| 男女精品网站| 久久影院午夜论| 国产精品永久入口久久久| 亚洲欧洲一级| 亚洲日韩成人| 蜜桃av一区二区三区| 久久精品伊人| 国产精品一区免费视频| 一本久久a久久精品亚洲| 亚洲日本aⅴ片在线观看香蕉| 亚洲欧美一区二区激情| 亚洲伊人观看| 欧美日韩综合在线| 亚洲欧洲精品一区二区三区波多野1战4 | 亚洲欧美视频在线| 欧美日韩免费观看一区二区三区| 蜜桃av久久久亚洲精品| 国产亚洲人成网站在线观看| 亚洲免费小视频| 欧美一区二区三区久久精品茉莉花| 欧美日韩一卡二卡| 日韩一级欧洲| 亚洲永久网站| 国产精品久久久久9999高清| 99xxxx成人网| 亚洲一区二区三区影院| 国产精品theporn| 亚洲一区二区三区视频| 亚洲欧美日韩在线不卡| 国产精品久久久久毛片大屁完整版 | 亚洲天堂av图片| 国内自拍视频一区二区三区| 久久九九全国免费精品观看| 亚洲蜜桃精久久久久久久| 久久久999| 欧美激情一区二区三区成人| 亚洲激情网站免费观看| 欧美精品激情在线观看| 亚洲免费高清视频| 亚洲欧美日韩中文视频| 国产色婷婷国产综合在线理论片a| 欧美一级播放| 欧美大片国产精品| 亚洲视频电影图片偷拍一区| 国产精品女人网站| 久久精品91久久香蕉加勒比| 欧美成人情趣视频| 在线一区日本视频| 国产日本欧美一区二区| 久久综合久久88| 99精品欧美一区| 久久久视频精品| 亚洲伦伦在线| 国产精品一区在线播放| 久久精品国产一区二区电影 | 欧美在线视频免费播放| 欧美成人自拍| 亚洲淫性视频| 一区二区三区中文在线观看 | 在线一区二区三区四区五区| 国产一区二区| 欧美日韩国产欧| 欧美在线一区二区| 亚洲精品少妇网址| 久久久蜜桃一区二区人| 亚洲视频一二区| 亚洲成人自拍视频| 国产噜噜噜噜噜久久久久久久久| 久久亚洲精品一区二区| 亚洲午夜国产成人av电影男同| 一区二区三区四区五区精品| 亚洲香蕉伊综合在人在线视看| 日韩亚洲一区二区| 亚洲欧美日韩国产综合| 亚洲欧洲视频在线| 国产日本欧美一区二区三区|