hdu 4324Triangle LOVE <拓扑排序>

链接 http://acm.hdu.edu.cn/showproblem.php?pid=4324

View Code
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 #include <algorithm>
 5 using namespace std;
 6 char map[2500][2500];
 7 int in[2500];
 8 int main( )
 9 {
10     int T;
11     scanf("%d", &T );
12     for( int t=1; t<=T; ++t ){
13         printf( "Case #%d: ", t );
14         int N, flage=0; 
15         scanf( "%d", &N );
16         for( int i=0; i<N; ++ i ){
17             scanf( "%s", map[i] );
18             in[i]=0;
19         }
20             
21         for( int i=0; i<N; ++ i ){
22             
23             for( int j=0; j<N; ++ j ){
24                 if( map[i][j]=='1' ){
25                     in[j]++;
26                 }
27             }
28         }
29         for( int i=0, k; i<N; ++i ){
30             for(  k=0; k<N; ++k ){
31                 if( !in[k] )break;
32             }
33             if( k==N ){
34                 puts( "Yes" );
35                 flage=1;
36                 break;
37             }
38             else{
39             //    printf( "%d ", k );
40                 in[k]--;
41                 for( int j=0; j<N; ++j ){
42                     if( map[k][j]=='1'&&in[j] )
43                         in[j]--;
44                 }
45             }
46         }
47         if( !flage )puts( "No" );
48     } 
49     return 0;
50 }
posted @ 2012-08-02 09:41  淡墨æ末央  阅读(106)  评论(0编辑  收藏  举报