poj 2570 Fiber Network floyd + 位运算
2012-06-30 20:57
375 查看
View Code
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define re(i,n) for(int i=1;i<=n;i++) const int maxn = 202; int map[maxn][maxn]; int n; void floyd() { re(k,n) re(i,n) { if(i==k | !map[i][k]) continue; re(j,n) { if(j==k || !map[k][j]) continue; map[i][j] |= map[i][k] & map[k][j]; } } } int main() { while(~scanf("%d",&n) && n) { int u,v; char c; memset(map,0,sizeof(map)); while(scanf("%d%d",&u,&v)) { if(u==0 && v==0) break; for(;(c=getchar())!='\n';map[u][v]|=1<<c-'a'); } floyd(); while(scanf("%d%d",&u,&v)) { if(u==0 && v==0) { putchar('\n');break; } bool ok = 0; for(int i=0;i<26;i++) { if(map[u][v] & 1<<i) ok = 1 , putchar('a'+i); } if(!ok) putchar('-'); putchar('\n'); } } return 0; }
相关文章推荐
- poj 2570 Fiber Network Floyd
- Poj 2570 Fiber Network Floyd思想处理
- POJ Fiber Network 2570
- poj&nbsp;2570&nbsp;Fiber&nbsp;Network(floyd)
- POJ2570 二进制,位运算,Floyd
- zoj 1967 Fiber Network/poj 2570
- poj 2570 Fiber Network --floyd求传递闭包加位运算
- poj 2570 floyd 二进制+位运算
- [floyd]poj 2570 fiber network #floyd+位运算
- POJ 2570 floyd 二进制
- POJ 2570 floyd(传递闭包+状态压缩)
- poj2570 Fiber Network 最短路floyd
- POJ 2570 Fiber Network(Floyd传递闭包+状态压缩)
- poj 2570 Fiber Network (Floyd)
- POJ 2570 Fiber Network(Floyd+位运算)
- POJ--2570--Fiber Network【floyd+位运算】
- poj 2570 Fiber Network(floyd)
- poj2570 zoj1967 Fiber Network floyd
- poj 2570 Fiber Network(floyd)
- poj2570 Floyd