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

            POJ 1094 C++ (圖論)

            //用DFS進(jìn)行拓?fù)渑判颍瑫r(shí) ,只能重寫
            #include"stdio.h"

            #include"string.h"
            #include"stdlib.h"

            int map[26][26],v[26],used[26],flag,n,total;
            char str[27];
            void sort(int i,int m)
            { int k;
            if(total==n)
                 {  flag=2;
                      return ;
                  }  
            for(k=0;k<n && !flag;k++)
                  { if(map[i][k]==0)
                       continue;
                   if(v[k])
                      { flag=1;
                         return ;
                       }
                   str[m]=k+65;    
                   total++;
                   v[k]=1;  
                   sort(k,m+1);
                   if(flag)
                      return ;
                   v[k]=0;
                   total--;
                  }
            }                


            int main()
            {int row,i,j,a,b,k,l;
            char s[4];
               freopen("in.txt","r",stdin);
               freopen("out.txt","w",stdout);
            while(1)
              { scanf("%d%d",&n,&row);
                 if(n==0 && row==0)
                    break;

                 flag=0;
                 memset(map,0,sizeof(map));
                 memset(used,0,sizeof(used));
                 for(k=1;k<=row;k++)
                     { scanf("%s",s);
                      if(!flag)
                       {memset(v,0,sizeof(v));
                        a=s[0]-65;
                        b=s[2]-65;
                        used[a]=1;
                        used[b]=1;
                        map[a][b]=1;
                        for(i=0;i<n && !flag;i++)
                           {  if(used[i]==0)
                                 break;
                                total=1;
                                v[i]=1;
                                str[0]=i+65;
                                sort(i,1);
                                v[i]=0;
                           }

                         if(flag==1)      
                          printf("Inconsistency found after %d relations.\n",k);    
                         else if(flag==2)
                           {printf("Sorted sequence determined after %d relations: ",k);
                                   for(i=0;i<n;i++)
                                      printf("%c",str[i]);
                                     printf(".\n");
                                     flag=1;
                           }  
                      }
                 }                

               if(!flag)
                  printf("Sorted sequence cannot be determined.\n");

               }

            return 0;
            }              



            // 改用floyd_warshall算法才過
            #include"stdio.h"
            #include"string.h"
            #include"stdlib.h"
            typedef struct Node{
                    int d;
                    char c;
            }Node;            
            int map[26][26],used[26],flag,n;
            Node node[26];

            int cmp(const void *a, const void *b)
            { return (*(Node *)a).d-(*(Node *)b).d;
            }


            void check()
            {int i,j;
            for(i=0;i<n;i++)
                 { if(used[i]==0)
                       return ;
                   for(j=0;j<n;j++)
                       if(map[i][j])
                         node[j].d++;
                 }
               qsort(node,n,sizeof(Node),cmp);
                for(i=0;i<n;i++)
                    if(node[i].d!=i)
                       return ;
                    flag=2;
            }    
            int main()
            {int row,i,j,a,b,k,h;
            char s[4];
               freopen("in.txt","r",stdin);
               freopen("out.txt","w",stdout);
            while(1)
              { scanf("%d%d",&n,&row);
                 if(n==0 && row==0)
                    break;
                 flag=0;
                 memset(map,0,sizeof(map));
                 for(h=1;h<=row;h++)
                     { scanf("%s",s);
                       if(!flag)
                       {a=s[0]-65;
                        b=s[2]-65;
                        used[a]=1;
                        used[b]=1;
                        for(i=0;i<n;++i)
                            {node[i].d=0;
                             node[i].c=i+65;
                             }
                     if(map[b][a]==1 || a==b)
                         { printf("Inconsistency found after %d relations.\n",h);
                           flag=1;
                         }
                      else
                           map[a][b]=1;
                      for(k=0;k<26;++k)
                            for(i=0;i<26;++i)
                               for(j=0;j<26;++j)
                                 map[i][j]=(map[i][j]||(map[i][k]&&map[k][j]));

                    if(!flag)
                        check();
                    if(flag==2)
                         {printf("Sorted sequence determined after %d relations: ",h);
                              for(i=0;i<n;i++)
                                  printf("%c",node[i].c);
                                 printf(".\n");

                         }  
                      }
                 }                

               if(!flag)
                  printf("Sorted sequence cannot be determined.\n");

               }

            return 0;
            }

            posted on 2008-11-27 00:22 蝸牛 閱讀(1433) 評(píng)論(0)  編輯 收藏 引用 所屬分類: ACM ICPC

            <2008年11月>
            2627282930311
            2345678
            9101112131415
            16171819202122
            23242526272829
            30123456

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(1)

            隨筆分類(20)

            隨筆檔案(20)

            Favorites

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久www免费人成看国产片| 欧美粉嫩小泬久久久久久久 | 久久亚洲综合色一区二区三区| 久久午夜羞羞影院免费观看| 久久综合久久综合久久| 久久综合给合综合久久| 五月丁香综合激情六月久久| 久久精品国产WWW456C0M| 2020久久精品亚洲热综合一本| 国产成人久久AV免费| 武侠古典久久婷婷狼人伊人| 久久精品国内一区二区三区| 久久99热这里只有精品国产| 久久99精品久久久久久噜噜| 国内精品久久久久影院优| 欧美亚洲国产精品久久高清 | 久久国产成人午夜AV影院| 熟妇人妻久久中文字幕| 亚洲国产成人久久一区WWW| 青青青国产成人久久111网站| 久久久久久伊人高潮影院| 久久久久国产一级毛片高清板| 97超级碰碰碰久久久久| 久久久精品人妻一区二区三区蜜桃| 一级女性全黄久久生活片免费 | 久久久亚洲欧洲日产国码aⅴ| 久久频这里精品99香蕉久| 久久国产一片免费观看| 品成人欧美大片久久国产欧美...| 久久久久久国产精品免费无码 | 久久99热精品| 久久99精品综合国产首页| 久久精品人人做人人妻人人玩| 新狼窝色AV性久久久久久| 色偷偷久久一区二区三区| 亚洲狠狠婷婷综合久久久久| 亚洲伊人久久精品影院| 久久亚洲精品无码AV红樱桃| 99久久久精品免费观看国产| 狠狠狠色丁香婷婷综合久久五月| 香蕉久久夜色精品国产小说|