hdu 1181 变形课
精典题 好题,对我这种刚开始接触数据结构的人来说,实在是太好了
#include <stdio.h>
#include <string.h>
#include <memory.h>
const int N=28 ;
int map[N][N] ;
void Floyd( )
{
int i, j, k ;
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] ) ;
}
int main()
{
int len ;
char a[2000] ;
while( EOF != scanf("%s",a) )
{
if( a[0] == '0' )
{
Floyd( ) ;
if( map[1][12] )
printf("Yes./n") ;
else
printf("No./n") ;
memset( map, 0, sizeof(map) ) ;
continue ;
}
len = strlen( a ) ;
map[a[0]-'a'][a[len-1]-'a'] = 1 ;
}
return 0 ;
}