• <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>

            巢穴

            about:blank

            P2513

            trie+并查集+歐拉回路
            有空數(shù)據(jù)..其實(shí)沒(méi)影響..但是討論里有個(gè)人說(shuō)空數(shù)據(jù)輸出Impossible...其實(shí)應(yīng)該P(yáng)ossible...
            這個(gè)人太邪惡了..
            另外用數(shù)組寫(xiě)tire,re了不下5次..
            最后改成了動(dòng)態(tài)的..
            1000+ms..還是挺慢的..

            #include <iostream>
            #include 
            <stdio.h>
            #include 
            <string>
            using namespace std;
            struct node
            {
             node 
            *s[26];
             
            int count;
             
            int pos;
             node()
             
            {
              count
            =0;
              pos
            =0;
              
            for(int i=0;i<26;i++)
               s[i]
            =NULL;
             }

             
            }
            *root;
            int f[500010],o[500010];
            int len=0,l=0;
            char st1[11];
            char st2[11];
            int insert(char *ch)
            {
                 
            int ts=0;
                 node 
            *p=root;
                 
            for (int i=0;i<strlen(ch);i++)
                 
            {
                     
            if ((p->s[ch[i]-'a'])==NULL)
                     
            {
                      p
            ->s[ch[i]-'a']=new node();
                     }

                     p
            =p->s[ch[i]-'a'];
                 }

                 
            if (p->count==0)
                 
            {
                  len
            ++;
                  p
            ->count=1;
                  p
            ->pos=len;
                  ts
            =len;
                  
            return ts;
                 }

                 
            else
                 
            {
                  ts
            =p->pos;
                  
            return ts;
                 }

                 
                 
            }

            int getfather(int x)
            {
             
            if (f[x]==x) return x;
             f[x]
            =getfather(f[x]);
             
            return f[x];
            }

            int main()
            {
                
                
            for (int i=0;i<500010;i++)
                 
            {f[i]=i;o[i]=0;}
                root
            =new node();
                
            int u=0;
                
            while(scanf ("%s %s", st1, st2) != EOF)
                
            {
                 u
            ++;
                 
            int x=insert(st1);
                 
            int y=insert(st2);
                 
            int fx=getfather(x);
                 
            int fy=getfather(y);
                 o[x]
            ++;
                 o[y]
            ++;
                 
            if (fx!=fy) f[fy]=fx;
                
            // if (u==5) break;
                }

                
                
            int itn=0;
                
            for (int i=1;i<=len;i++)
                 
            if (getfather(i)==i) itn++;
                
            int odd=0;
                
            for (int i=1;i<=len;i++)
                 
            if (o[i]%2) odd++;
                
                
            if (len==0)
                
            {
                 cout
            <<"Possible"<<endl;
                 exit(
            0);
                }

                
            if (itn==1&&(odd==2||odd==0)) 
                
            {
                 cout
            <<"Possible"<<endl;
                }

                
            else
                
            {
                 cout
            <<"Impossible"<<endl;
                }

               
            // system("pause");
                 
                
            return 0;
            }

            posted on 2009-11-03 16:59 Vincent 閱讀(97) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): 數(shù)據(jù)結(jié)構(gòu)與算法

            91精品国产综合久久精品| 91精品久久久久久无码| 久久天天躁夜夜躁狠狠躁2022| 久久久综合香蕉尹人综合网| 国产精品中文久久久久久久| 奇米影视7777久久精品| 国产69精品久久久久99尤物| 久久久一本精品99久久精品88| 麻豆精品久久久一区二区| 午夜精品久久久久久影视777| 久久偷看各类wc女厕嘘嘘| 国产精品久久久久乳精品爆 | 99999久久久久久亚洲| 久久av高潮av无码av喷吹| 久久精品国产免费观看| 久久国产精品免费一区| 久久亚洲精品中文字幕| 一级做a爰片久久毛片看看| 亚洲天堂久久精品| 97超级碰碰碰久久久久| 久久人人爽人人爽人人片AV东京热| 香蕉久久一区二区不卡无毒影院| avtt天堂网久久精品| 久久久久久久久久久| 午夜精品久久久久9999高清| 国产真实乱对白精彩久久| 亚洲国产精品久久久久久| 91精品国产高清91久久久久久| 久久亚洲AV无码精品色午夜| 亚洲国产精品无码久久久久久曰 | 中文字幕久久久久人妻| 伊人久久五月天| 久久精品卫校国产小美女| 久久婷婷五月综合色99啪ak| 国产精品青草久久久久福利99| 91精品国产91热久久久久福利 | 国产精品久久久久蜜芽| 免费精品国产日韩热久久| 四虎久久影院| 97久久国产综合精品女不卡| 亚洲综合熟女久久久30p|