POJ2570:Fiber Network
来源:互联网 发布:java获取微信版本号 编辑:程序博客网 时间:2024/06/07 04:12
http://poj.org/problem?id=2570
题目看似与Floyd无关,但是我们可以用Floyd算法的思想去解决。在这里我们将每一位小写字母转化成对应的二进制位,刚好需要一个整型数据来保存结果,通过逻辑与或操作来完成对应位的操作。开始交的时候用g++然后用printf()输出,结果一直超时,改用putchar()后就过了,然后用将语言改为c++ 结果用printf()输出也过了,只不过时间上慢一点。。看来putchar的速度还是很快的。。。
源代码如下:
#include <iostream>#include <stdio.h>#include <string.h>using namespace std ;int map[201][201] ; int n ;int main(){int i ;int k ;int j ;int p ;int q ;char ch ;char str[27] ;while(scanf("%d" , &n)!=EOF && n){memset(map , 0 , sizeof(map)) ;while(scanf("%d %d" , &p , &q )){if(p==0||q==0)break ;scanf("%s" , str) ;for(i = 0 ; str[i] ; i ++)map[p][q] |= 1<<(str[i]-'a') ;}for(k = 1 ; k <= n ; k ++)for(j = 1 ; j <= n ; j ++)for(i = 1 ; i <= n ; i ++)map[j][i] |= map[j][k] & map[k][i] ;while(scanf("%d %d" , &p , &q)){if(p==0 || q==0)break ;for(ch='a' ; ch <= 'z' ; ++ch)if(map[p][q]&(1<<(ch-'a')))putchar(ch);if(!map[p][q])putchar('-') ;putchar('\n') ;}putchar('\n') ;}return 0 ;}
- POJ2570:Fiber Network
- poj2570 zoj1967 Fiber Network floyd
- POJ2570 Fiber Network floyd传递闭包
- poj2570 Fiber Network 最短路floyd
- POJ 2570 Fiber Network
- POJ 2570 Fiber Network
- POJ-2570-Fiber Network
- zoj 1967 Fiber Network
- POJ Fiber Network 2570
- POJ 2570 Fiber Network
- POJ-2570 Fiber Network
- 【FOJ 1169】 Fiber Network
- ZOJ3824 Fiber-optic Network
- POJ 2570Fiber Network
- Fiber Network 2010.3.6
- POJ2570
- poj2570&zoj1967Fiber Network(floyd+状态压缩)
- poj 2570 Fiber Network Floyd
- 浅谈iPhone和iPad开发中的图标设置
- Linux学习第三篇
- Linux主流版本介绍
- 关于it择业的问题
- Linux学习第五篇
- POJ2570:Fiber Network
- 如何编写优质的API文档
- 微软2012年暑期实习题目
- C#基础加强--this 的用法(重载构造方法,设置构造方法中参数的默认值)
- 第0篇
- Android的几种分辨率
- 分享 音悦台 不错的MV网站
- linux各文件夹的作用
- 摇身一变成专家了