[floyd]poj 2570 fiber network #floyd+位运算

来源:互联网 发布:计算机视觉与人工智能 编辑:程序博客网 时间:2024/03/29 23:39
?**[[floyd]poj 2570 fiber network #floyd+位运算额。。。又在G++下TLE了。C++稳过。*/#include <stdio.h>#include <string.h>#define N 202int u,v,n,mat[N][N],bit[27];char s[30];int main(){int i,j,k;for(i = 0; i < 26; ++i)bit[i] = (1 << i);while(scanf("%d",&n) != EOF && n){memset(mat,0,sizeof(mat));while(scanf("%d%d",&u,&v) != EOF && u){scanf("%s",s);for(i = 0 ; s[i]; ++i)mat[u][v] |= bit[s[i] - 'a'];}for(k = 1; k <= n; ++k)for(i = 1; i <= n; ++i)for(j = 1; j <= n; ++j)mat[i][j] |= (mat[i][k] & mat[k][j]);while(scanf("%d%d",&u,&v) != EOF && u){if(mat[u][v] == 0){puts("-");continue;}for(i = 0; i < 26; ++i)if(mat[u][v] & bit[i])printf("%c",char(i + 'a'));puts("");}puts("");}return 0;}