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

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>
            99国产精品自拍| 欧美gay视频激情| 夜夜嗨av一区二区三区网页| 久久久最新网址| 国产嫩草影院久久久久| 国产精品视频精品视频| 久久久久国产一区二区| 欧美电影在线观看完整版| 亚洲精品中文字幕女同| 毛片av中文字幕一区二区| 国产精品久久久久国产精品日日 | 亚洲最黄网站| 日韩亚洲欧美一区| 亚洲视频999| 久久精品亚洲乱码伦伦中文 | 一区二区三区免费在线观看| 亚洲一区成人| 久久久91精品国产| 亚洲国产美女精品久久久久∴| 久久综合五月| 亚洲视频在线播放| 国内精品久久久久影院 日本资源| 国产欧美日韩麻豆91| 91久久亚洲| 欧美成人激情在线| 欧美在线国产| 国产人成精品一区二区三| 夜夜狂射影院欧美极品| 久久午夜精品一区二区| 亚洲区免费影片| 久久在线视频在线| 亚洲天天影视| 国产精品v亚洲精品v日韩精品 | 免费日韩av片| 国产精品一区2区| 亚洲一区亚洲二区| 亚洲精品影院| 国产精品第三页| 午夜精品在线看| 夜夜嗨av一区二区三区免费区| 欧美国产三区| 亚洲一区二区在线看| 亚洲天堂av综合网| 韩国av一区二区三区四区| 久久久999精品免费| 久久激情五月激情| 91久久精品美女高潮| 99精品视频一区| 国产欧美精品一区| 鲁鲁狠狠狠7777一区二区| 欧美成人在线影院| 亚洲欧美日韩一区二区在线 | 欧美激情中文不卡| 欧美精品激情在线| 久久久国产精品一区二区中文 | 欧美精品综合| 欧美中文字幕在线观看| 欧美精品日韩| 久久综合伊人| 国产精品国内视频| 欧美好吊妞视频| 亚洲一区二区三区久久| 国产主播一区| 99在线热播精品免费| 激情久久久久久久| 亚洲欧美在线播放| 亚洲一区二区高清| 欧美日韩国产二区| 亚洲大黄网站| 久久婷婷国产麻豆91天堂| 亚洲欧美国产三级| 欧美日韩免费观看一区=区三区| 你懂的一区二区| 影音先锋亚洲电影| 午夜一区二区三视频在线观看| 国产精品成人一区二区三区夜夜夜 | 欧美xart系列高清| 久久综合精品国产一区二区三区| 国产精品少妇自拍| 午夜视频久久久| 久久综合久久综合九色| 欧美日韩精品在线视频| 中文精品99久久国产香蕉| 欧美一区1区三区3区公司| 国产专区精品视频| 欧美77777| 欧美一区二区三区四区高清| 欧美一区二区在线看| 影音先锋亚洲电影| 欧美日韩精品一本二本三本| 欧美一区二区在线| 亚洲激情一区二区| 久久久精品免费视频| 久久久久国产精品人| 亚洲国内高清视频| 亚洲欧美国产制服动漫| 亚洲电影激情视频网站| 国产精品大片免费观看| 久久这里只精品最新地址| 亚洲国产影院| 你懂的成人av| 免费在线成人| 欧美一区二区三区免费看| 亚洲黄色成人| 亚洲国产精品毛片| 在线亚洲欧美| 9久re热视频在线精品| 久久久亚洲成人| 久久久精品动漫| 久久精品官网| 久久青草欧美一区二区三区| 久久精品99国产精品日本| 久久爱www.| 久久在线视频| 欧美大片在线观看一区| 欧美v国产在线一区二区三区| 久久伊伊香蕉| 欧美成人精品三级在线观看| 久久精品亚洲一区二区| 美女亚洲精品| 亚洲国产欧美日韩精品| 亚洲精品日韩激情在线电影| 亚洲乱码一区二区| 亚洲综合日韩在线| 久久久综合激的五月天| 欧美—级a级欧美特级ar全黄| 欧美日韩综合另类| 国产午夜精品久久久久久久| 黄色亚洲免费| 亚洲一区视频| 亚洲成人中文| 亚洲男人第一av网站| 久久久久国产一区二区三区四区 | 亚洲精品久久久久| 一本一本久久a久久精品综合妖精| 一区二区三区免费在线观看| 先锋影音一区二区三区| 毛片av中文字幕一区二区| 亚洲日本成人在线观看| 免费久久久一本精品久久区| 亚洲精品视频一区| 久久久亚洲精品一区二区三区| 欧美日韩一区二区三区免费看| 国产一区二区三区在线免费观看 | 国产一区二区精品久久99| 在线观看日韩专区| 欧美中文字幕在线视频| 日韩视频在线一区二区| 久久夜色精品国产欧美乱极品| 国产精品二区三区四区| 亚洲影视在线| 亚洲日产国产精品| 欧美激情第三页| 亚洲精品女av网站| 99视频一区二区三区| 欧美日韩在线不卡一区| 午夜精品久久久久久久蜜桃app | 亚洲一区久久久| 亚洲一区二区三区四区五区午夜 | 欧美成人自拍| 久久亚洲综合色一区二区三区| 韩国成人福利片在线播放| 久久中文字幕一区二区三区| 欧美专区第一页| 在线亚洲免费| 久久久99爱| 亚洲一区www| 美女日韩在线中文字幕| 亚洲一级免费视频| 久久久欧美精品| 亚洲欧美成人一区二区三区| 午夜精品久久久久久99热| 亚洲精选一区| 久久精品人人爽| 噜噜噜在线观看免费视频日韩| 一本色道久久88综合亚洲精品ⅰ| 午夜在线不卡| 中文av一区特黄| 久久久久国产精品一区三寸| 在线中文字幕一区| 久久五月激情| 久久综合久久综合久久| 国产精品麻豆va在线播放| 亚洲国产欧美在线人成| 国产亚洲成av人在线观看导航| 亚洲毛片在线观看.| 亚洲视频一区| 欧美日韩成人免费| 亚洲人成网站777色婷婷| 影音先锋日韩精品| 久久综合精品国产一区二区三区| 亚洲欧美成人| 韩国三级电影久久久久久| 午夜久久资源| 久久伊人一区二区| 亚洲国产毛片完整版| 欧美激情综合| 亚洲欧美日本伦理| 久久免费偷拍视频| 在线观看亚洲精品视频|