码迷,mamicode.com
首页 > 其他好文 > 详细

UVA 1572 Self-Assembly

时间:2014-07-22 22:41:15      阅读:282      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   io   for   

拓扑排序,以边上标号为点,正方形为边,拓扑图中存在有向环时unbounded,否则bounded;

注意:仔细处理输入;

     遍历一个点时,下一次遍历拼上的下一个方形边;即假设遍历到 A+ 时,下次从 A- 开始遍历;

 

 

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 using namespace std;
 5 
 6     int n;
 7     int g[60][60];
 8     int visit[60];
 9 
10 int dfs (int u){
11     visit[u]=-1;
12     if (u%2)
13         u--;
14     else u++;
15     for (int i=0;i<52;i++)
16         if (g[u][i]){
17             if (visit[i]<0)
18                 return false ;
19             else if (!visit[i]&&!dfs (i))
20                 return false ;
21         }
22     if (u%2) u--;else u++;
23     visit[u]=1;
24     return true ;
25 }
26 
27 int topo (){
28     for (int u=0;u<52;u++)
29         if (!visit[u]&&!dfs (u))
30             return false ;
31     return true ;
32 }
33 
34 int main (){
35     while (~scanf ("%d",&n)){
36         memset (visit,0,sizeof visit);
37         memset (g,0,sizeof g);
38         for (int i=0;i<n;i++){
39             char s[10];
40             scanf ("%s",s);
41             for (int j=0;j<4;j++){
42                 if (s[j*2]==0)
43                     continue ;
44                 int tempj=(s[j*2]-A)*2;
45                 //g[tempj][tempj+1]=g[tempj+1][tempj]=1;
46                 tempj+=s[j*2+1]==+?0:1;
47                 for (int o=j+1;o<4;o++){
48                     if (s[o*2]==0)
49                         continue ;
50                     int tempo=(s[o*2]-A)*2;
51                     tempo+=s[o*2+1]==+?0:1;
52                     g[tempj][tempo]=g[tempo][tempj]=1;
53                 }
54             }
55         }
56         //for (int i=0;i<52;i++){for (int j=0;j<52;j++){cout<<g[i][j];}cout<<endl;}
57         if (topo ())
58             printf ("bounded\n");
59         else printf ("unbounded\n");
60     }
61     return 0;
62 }

UVA 1572 Self-Assembly,布布扣,bubuko.com

UVA 1572 Self-Assembly

标签:style   blog   color   os   io   for   

原文地址:http://www.cnblogs.com/gfc-g/p/3860117.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!