• <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)論排行榜

            偷窥少妇久久久久久久久| 色偷偷久久一区二区三区| 久久久久99精品成人片欧美 | 88久久精品无码一区二区毛片 | 精品国产热久久久福利| 久久免费大片| 久久se精品一区精品二区| 国产ww久久久久久久久久| 无码人妻久久一区二区三区免费丨 | 99久久无码一区人妻| 性做久久久久久久久老女人| 亚洲AV无码成人网站久久精品大| 久久精品国产亚洲av麻豆小说| 国产精品成人无码久久久久久 | 久久精品国产AV一区二区三区| 国产精品成人久久久久久久| 久久久久久久久波多野高潮| 18岁日韩内射颜射午夜久久成人| 中文字幕精品久久久久人妻| 国产真实乱对白精彩久久| 午夜不卡久久精品无码免费| 国产精品久久久久久久午夜片| 天堂久久天堂AV色综合| 伊人情人综合成人久久网小说| www亚洲欲色成人久久精品| 久久无码AV中文出轨人妻| 久久影视综合亚洲| 一级做a爰片久久毛片16| 久久久久亚洲AV无码麻豆| 亚洲午夜久久久| 中文字幕亚洲综合久久菠萝蜜| 91精品国产91热久久久久福利| 国产美女久久精品香蕉69| 亚洲国产另类久久久精品小说 | 大伊人青草狠狠久久| 国产韩国精品一区二区三区久久| 久久亚洲中文字幕精品一区| 亚洲国产成人久久综合一区77| 久久99精品久久久久久秒播| 99精品久久久久久久婷婷| 91精品日韩人妻无码久久不卡|