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

superman

聚精會(huì)神搞建設(shè) 一心一意謀發(fā)展
posts - 190, comments - 17, trackbacks - 0, articles - 0
   :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

ZOJ 1141 - Closest Common Ancestors

Posted on 2008-04-22 22:40 superman 閱讀(357) 評(píng)論(0)  編輯 收藏 引用 所屬分類: ZOJ
  1 /* Accepted 1141 C++ 00:03.20 5904K */
  2 #include <iostream>
  3 
  4 using namespace std;
  5 const int maxn = 800;
  6 
  7 struct { int cnt, son[maxn]; } Tree[maxn + 1];
  8 struct { int cnt, x[maxn]; } Query[maxn + 1];
  9 
 10 class DisjointSet
 11 {
 12 private:
 13      int p[maxn + 1], rank[maxn + 1];
 14 public:
 15      void reset()
 16      {
 17           memset(p, 0sizeof(p));
 18           memset(rank, 0sizeof(rank));
 19      }
 20      void make(const int x)
 21      {
 22           p[x] = x;
 23           rank[x] = 0;
 24      }
 25      void link(const int x, const int y)
 26      {
 27           if(rank[x] > rank[y])
 28                p[y] = x;
 29           else
 30           {
 31                p[x] = y;
 32                if(rank[x] == rank[y])
 33                     rank[y]++;
 34           }
 35      }
 36      int find(const int x)
 37      {
 38           if(x != p[x])
 39                p[x] = find(p[x]);
 40           return p[x];
 41      }
 42 }set;
 43 
 44 int ancestor[maxn + 1], cnt[maxn + 1];
 45 bool black[maxn + 1];
 46 
 47 void LCA(int u)
 48 {
 49      set.make(u);
 50      ancestor[set.find(u)] = u;
 51      for(int i = 0; i < Tree[u].cnt; i++)
 52      {
 53           LCA(Tree[u].son[i]);
 54           set.link(u, Tree[u].son[i]);
 55           ancestor[set.find(u)] = u;
 56      }
 57      black[u] = true;
 58      for(int i = 0; i < Query[u].cnt; i++)
 59           if(black[Query[u].x[i]])
 60                cnt[ancestor[set.find(Query[u].x[i])]]++;
 61 }
 62 
 63 int main()
 64 {
 65      int n;
 66      while(cin >> n)
 67      {
 68           memset(cnt,   0,     sizeof(cnt));
 69           memset(Tree,  0,     sizeof(Tree));
 70           memset(Query, 0,     sizeof(Query));
 71           memset(black, falsesizeof(black));
 72           
 73           int s, t, m;
 74           bool x[maxn] = {false};
 75           for(int i = 0; i < n; i++)
 76           {
 77                scanf("%d:(%d)"&s, &m);
 78                for(int k = 0; k < m; k++)
 79                {
 80                     cin >> t;
 81                     x[t] = true;
 82                     Tree[s].son[k] = t;
 83                }
 84                Tree[s].cnt = m;
 85           }
 86           
 87           int root;
 88           for(int i = 1; i <= n; i++)
 89                if(x[i] == false)
 90                {
 91                     root = i;
 92                     break;
 93                }
 94           
 95           cin >> m;
 96           char c1, c2, c3;
 97           for(int i = 0; i < m; i++)
 98           {
 99                cin >> c1 >> s >> c2 >> t >> c3;
100                Query[s].x[Query[s].cnt++= t;
101                Query[t].x[Query[t].cnt++= s;
102           }
103           
104           set.reset();
105           LCA(root);
106           
107           for(int i = 1; i <= n; i++)
108                if(cnt[i])
109                     cout << i << ':' << cnt[i] << endl;
110      }
111      
112      return 0;
113 }
114 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品视频久久久| 久久久青草婷婷精品综合日韩| 亚洲午夜性刺激影院| 亚洲精品网址在线观看| 亚洲免费电影在线| 亚洲影院在线观看| 久久成人综合视频| 欧美国产大片| 亚洲神马久久| 久久人人97超碰精品888| 欧美jjzz| 国产精品午夜视频| 亚洲国产欧美国产综合一区| 在线亚洲一区| 久久久久99| 最新国产精品拍自在线播放| 亚洲免费成人av电影| 午夜老司机精品| 欧美电影免费观看高清| 国产精品久久久久久久午夜片| 国产专区欧美精品| 一区二区三区国产在线观看| 久久婷婷国产麻豆91天堂| 亚洲日本成人网| 久久aⅴ国产紧身牛仔裤| 欧美好骚综合网| 国产日韩欧美中文在线播放| 亚洲精品一区二区三区在线观看 | 亚洲最黄网站| 国产精品日韩一区| 影音先锋久久资源网| 亚洲素人在线| 欧美成人免费一级人片100| 亚洲一区二区在线| 欧美国产日本在线| 精品88久久久久88久久久| 性刺激综合网| 日韩小视频在线观看专区| 久久午夜电影网| 国产日韩视频一区二区三区| 一本色道久久综合亚洲91| 久久久久久**毛片大全| 亚洲午夜精品网| 欧美日韩国产综合视频在线观看中文| 激情久久久久久久久久久久久久久久| 亚洲天堂男人| 亚洲精品一二区| 老**午夜毛片一区二区三区| 国产在线日韩| 久久九九全国免费精品观看| 亚洲视频综合| 国产精品国产三级国产普通话三级| 亚洲国产日韩欧美在线99| 免费成人在线视频网站| 久久久av水蜜桃| 狠狠v欧美v日韩v亚洲ⅴ| 久久久九九九九| 久久gogo国模啪啪人体图| 国产一区二区视频在线观看| 欧美一区亚洲二区| 欧美一区二区三区婷婷月色| 国产视频欧美视频| 久久夜色精品国产亚洲aⅴ| 久久xxxx精品视频| 在线观看一区欧美| 亚洲二区在线| 欧美日本国产| 亚洲午夜在线观看| 亚洲在线观看视频| 国产一区亚洲| 亚洲国产精品高清久久久| 欧美国产欧美亚州国产日韩mv天天看完整| 亚洲国产成人av| 亚洲美女精品久久| 国产精品久久久久毛片大屁完整版| 亚洲在线中文字幕| 欧美一区二区三区男人的天堂 | 久久精品一区二区三区四区| 欧美一区高清| 1024亚洲| 99日韩精品| 亚洲一区二区网站| 欧美一级欧美一级在线播放| 亚洲卡通欧美制服中文| 欧美激情一区二区三区成人| 99re6这里只有精品| 宅男精品视频| 精品动漫3d一区二区三区免费| 免费视频一区二区三区在线观看| 欧美成人r级一区二区三区| 一本色道久久综合亚洲二区三区| 亚洲一区二区三区精品在线观看 | 韩国av一区二区三区在线观看| 老司机精品导航| 欧美另类变人与禽xxxxx| 午夜视频久久久久久| 久久嫩草精品久久久久| 亚洲一区二区三区在线播放| 久久精品国产99| 一本色道久久88综合日韩精品| 亚洲欧美激情一区| 亚洲三级电影全部在线观看高清| 亚洲性色视频| 亚洲乱码国产乱码精品精天堂 | 最新中文字幕亚洲| 国产一区二区久久久| 亚洲国产一区二区三区高清| 国产伦精品一区二区三区视频孕妇 | 免费不卡在线观看| 欧美在线观看一区二区| 欧美精品一区二区久久婷婷| 久久久噜噜噜久久人人看| 欧美视频二区36p| 欧美激情中文字幕乱码免费| 国产在线视频欧美| 亚洲欧美电影在线观看| 亚洲素人在线| 欧美激情精品久久久久久黑人| 久久五月激情| 国产一区二区三区免费观看| 一区二区精品| 中文av一区特黄| 欧美精品一区二区三区在线播放| 久久综合成人精品亚洲另类欧美| 国产精品美女久久久免费| 亚洲精品在线一区二区| 亚洲欧洲另类| 欧美91大片| 欧美激情四色| 亚洲欧洲精品天堂一级| 91久久久亚洲精品| 久久久欧美精品sm网站| 国产精品久久77777| 一本一本久久a久久精品综合妖精| 尤物视频一区二区| 久久精品一级爱片| 噜噜噜在线观看免费视频日韩 | 亚洲精品久久久久久久久久久| 欧美在线视频观看| 久久精品99国产精品日本| 国产无一区二区| 欧美一区二区三区视频免费| 久久免费少妇高潮久久精品99| 国产亚洲日本欧美韩国| 欧美制服丝袜第一页| 久久久久久久久久久久久久一区 | 欧美视频久久| 亚洲一区二区三区免费观看| 校园春色国产精品| 国内精品免费午夜毛片| 久久综合网hezyo| 亚洲日本久久| 午夜精品视频一区| 国产视频精品网| 女女同性精品视频| 亚洲精品免费在线| 亚洲欧美视频在线观看视频| 国产婷婷一区二区| 欧美r片在线| 一区二区三区四区五区精品| 欧美一区二区三区在线看| 激情视频一区| 欧美噜噜久久久xxx| 亚洲制服少妇| 亚洲国产色一区| 午夜精品美女自拍福到在线| 在线电影院国产精品| 欧美日本韩国一区| 欧美在线看片| 亚洲精品久久久蜜桃| 久久国产精品久久久久久久久久 | 亚洲韩日在线| 欧美一区二区视频在线观看2020 | 亚洲激情av| 欧美午夜精品久久久久久浪潮 | 国产精品一卡| 免费久久久一本精品久久区| 亚洲夜晚福利在线观看| 欧美激情第六页| 久久精品在线播放| 一区二区三区成人精品| 亚洲电影av在线| 国产日韩欧美在线| 欧美日韩在线视频一区二区| 久久先锋影音av| 午夜久久美女| 中日韩高清电影网| 欧美国产免费| 久久久久免费| 欧美一区二区三区的| 中文日韩在线| 亚洲精品韩国| 国产精品嫩草久久久久| 亚洲精品国产精品国自产在线| 亚洲精品久久久一区二区三区| 国产午夜精品福利| 国产精品视频午夜| 欧美日韩在线一区| 欧美日一区二区在线观看| 欧美激情亚洲自拍|