题目翻译

一些公司决定搭建一个更快的网络。称为“光纤网”。

他们已经在全世界建立了很多网站。这 些网站的作用类似于路由器。不幸的是,这些公司在关于网站之间的接线问题上存在争论,这样“光纤网”项目就被迫终止了,留下的是每一个公司自己在某些网站之间铺设的线路。 如今,Internet 服务供应商。当想从网站 A传送数据到网站 B,就感到困惑了。究竟哪个公司 可以提供必要的连接。

请帮助供应商回答他们的查询。查询全部可以提供从网站
A到站定 B的线 路连接的公司。

输入描写叙述:

输入文件包括多个測试数据。每一个測试数据第 1行为一个整数 n,代表网络中网站的个数。n = 0 代表输入结束。否则 n的范围为:1≤n≤200。网站的编号为 1, …, n。

接下来列出了这些站 点之间的连接。每对连接占一行,首先是两个整数 A和B,A = B = 0 代表连接列表结束,否则 A、 B的范围为:1≤A, B≤n,表示网站 A和网站 B之间的单向连接;每行后面列出了拥有网站
A到 B之间连接的公司。公司用小写字母标识,多个公司的集合为包括小写字母的字符串。

连接列表之后。是供应商查询的列表。每一个查询包括两个整数 A和B,A = B = 0 代表查询列 表结束,也代表整个測试数据结束,否则 A、B 的范围为:1≤A, B≤n,代表查询的起始和终止 网站。

假定不论什么一对连接和查询的两个网站都不同样。

输出描写叙述:

对測试数据中的每一个查询,输出一行,为满足下面条件的全部公司的标识:这些公司能够通 过自己的线路为供应商提供从查询的起始网站到终止网站的数据通路。假设没有满足条件的公司, 则仅输出字符"-"。每一个測试数据的输出之后输出一个空行。

公司最多有26个  能够用2进制来表示网站间的连接关系  假设提供网站 1 到网站 2 的连接的公司集合为{ 'a', 'b', 'c' },能够用 “00000000000000000000000000000111”表示,提供网站 2到网站 3的连接的公司集合为{ 'a', 'd' },用“00000000000000000000000000001001”表示,这两个整数进行二进制与运算后
 得到“00000000000000000000000000000001”,表示通过中间网站 2,提供网站 1到网站 3的连 接的公司集合为{ 'a' }。

这样就floyd进行处理就类似最短路问题了

#include<cstdio>
#include<cstring>
using namespace std;
const int N = 205;
int d[N][N], n; void floyd()
{
for(int k = 1; k <= n; ++k)
for(int i = 1; i <= n; ++i)
for(int j = 1; j <= n; ++j)
d[i][j] |= (d[i][k] & d[k][j]); } int main()
{
int a, b;
char s[30];
while(scanf("%d", &n), n)
{
memset(d, 0, sizeof(d));
while(scanf("%d%d", &a, &b), a)
{
scanf("%s", s);
for(int i = 0; s[i] != '\0'; ++i)
d[a][b] = d[a][b] | (1 << s[i] - 'a');
}
floyd();
while(scanf("%d%d", &a, &b), a)
{
for(char c = 'a'; c <= 'z'; ++c)
if(d[a][b] & (1 << c - 'a')) printf("%c", c);
if(d[a][b] == 0) printf("-");
printf("\n");
}
printf("\n");
}
return 0;
}

Fiber Network

Description

Several startup companies have decided to build a better Internet, called the "FiberNet". They have already installed many nodes that act as routers all around the world. Unfortunately, they
started to quarrel about the connecting lines, and ended up with every company laying its own set of cables between some of the nodes. 

Now, service providers, who want to send data from node A to node B are curious, which company is able to provide the necessary connections. Help the providers by answering their queries.

Input

The input contains several test cases. Each test case starts with the number of nodes of the network n. Input is terminated by n=0. Otherwise, 1<=n<=200. Nodes have the numbers 1, ..., n. Then
follows a list of connections. Every connection starts with two numbers A, B. The list of connections is terminated by A=B=0. Otherwise, 1<=A,B<=n, and they denote the start and the endpoint of the unidirectional connection, respectively. For every connection,
the two nodes are followed by the companies that have a connection from node A to node B. A company is identified by a lower-case letter. The set of companies having a connection is just a word composed of lower-case letters. 

After the list of connections, each test case is completed by a list of queries. Each query consists of two numbers A, B. The list (and with it the test case) is terminated by A=B=0. Otherwise, 1<=A,B<=n, and they denote the start and the endpoint of the query.
You may assume that no connection and no query contains identical start and end nodes.

Output

For each query in every test case generate a line containing the identifiers of all the companies, that can route data packages on their own connections from the start node to the end node
of the query. If there are no companies, output "-" instead. Output a blank line after each test case.

Sample Input

3
1 2 abc
2 3 ad
1 3 b
3 1 de
0 0
1 3
2 1
3 2
0 0
2
1 2 z
0 0
1 2
2 1
0 0
0

Sample Output

ab
d
- z
-

POJ 2570 Fiber Network(最短路 二进制处理)的更多相关文章

  1. POJ 2570 Fiber Network

    Description Several startup companies have decided to build a better Internet, called the "Fibe ...

  2. ZOJ 1967 POJ 2570 Fiber Network

    枚举起点和公司,每次用DFS跑一遍图,预处理出所有的答案.询问的时候很快就能得到答案. #include<cstdio> #include<cmath> #include< ...

  3. poj 2570 Fiber Network(floyd)

    #include<stdio.h> #include<string.h> #include<algorithm> using namespace std; int ...

  4. POJ 2579 Fiber Network(状态压缩+Floyd)

    Fiber Network Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3328   Accepted: 1532 Des ...

  5. POJ 1459 Power Network / HIT 1228 Power Network / UVAlive 2760 Power Network / ZOJ 1734 Power Network / FZU 1161 (网络流,最大流)

    POJ 1459 Power Network / HIT 1228 Power Network / UVAlive 2760 Power Network / ZOJ 1734 Power Networ ...

  6. 【POJ 3694】 Network(割边&lt;桥&gt;+LCA)

    [POJ 3694] Network(割边+LCA) Network Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 7971 ...

  7. POJ 3635 - Full Tank? - [最短路变形][手写二叉堆优化Dijkstra][配对堆优化Dijkstra]

    题目链接:http://poj.org/problem?id=3635 题意题解等均参考:POJ 3635 - Full Tank? - [最短路变形][优先队列优化Dijkstra]. 一些口胡: ...

  8. POJ 2236 Wireless Network ||POJ 1703 Find them, Catch them 并查集

    POJ 2236 Wireless Network http://poj.org/problem?id=2236 题目大意: 给你N台损坏的电脑坐标,这些电脑只能与不超过距离d的电脑通信,但如果x和y ...

  9. zoj 1967 Fiber Network/poj 2570

    题意就是 给你 n个点 m条边 每条边有些公司支持 问 a点到b点的路径有哪些公司可以支持 这里是一条路径中要每段路上都要有该公司支持 才算合格的一个公司// floyd 加 位运算// 将每个字符当 ...

随机推荐

  1. echarts如何更改表格主题颜色

    vue项目中,需要使用echarts时,需要根据UI设计图进行图标颜色修改 方法一: 1.在script中引入echarts以及主题样式: import echarts from 'echarts'; ...

  2. 《你又怎么了我错了行了吧团队》第七次作业:团队项目完善&编码

    <你又怎么了我错了行了吧团队>第七次作业:团队项目完善&编码 项目 内容 这个作业属于哪个课程 软件工程 这个作业的要求在哪里 实验十一 团队名称 你又怎么了我错了行了吧 作业学习 ...

  3. MyEclipse2014高速配置Spring &amp; Spring Testing, Spring AOP简单使用

    1.新建项目 2.右击项目,如图,利用myeclipse自己主动导入spring 3.在弹出的对话框中一直next到最后,在最后的页面中勾选Spring Testing,完毕. watermark/2 ...

  4. EditText电话号码格式化输入、删除案例

    我们在输入电话号码的时候,一般都会切割一个较长的电话号码.这种话效果会好非常多..对EditText的监听能够轻松的实现这个需求.仅仅须要我们给相应的EditText加一个监听就OK了..贴一下我写的 ...

  5. POJ 题目3237 Tree(Link Cut Tree边权变相反数,求两点最大值)

    Tree Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 6131   Accepted: 1682 Description ...

  6. ElasticSearch Shard——本质上是做分布式扩展,副本对于集群的稳定性有很强的影响

    什么是一个Shard? Shard就是一个Lucene Index,参照文章(深入理解Shard和Lucene Index). Index需要多少个Shard? 回答这个问题,我们需要先谈谈节点,一个 ...

  7. 3.多线程传参,以及tuple数组

    #include <Windows.h> #include <thread> #include <iostream> #include <tuple> ...

  8. OEM12C(12.1.0.5)安装插件监控mysql(linux)

    目录结构: 文章参考论坛:https://blog.csdn.net/u010719917/article/details/78128200 环境说明: oms:12.1.0.5  os:centos ...

  9. 递归版快速排序-JS代码

    "use strict" var arr1=[11,21,3,4,0]; function qSort(arr){ var mid,left,right,len,i,j,empty ...

  10. error C2504: 未定义基类

    出错的情况为: type.h 文件中定义了一个结构体,但只给出了声明 namespace pcl { struct CSDDSignature; } 其定义在type.hpp文件中给出 namespa ...