当前你的浏览器版本过低,网站已在兼容模式下运行,兼容模式仅提供最小功能支持,网站样式可能显示不正常。
请尽快升级浏览器以体验网站在线编辑、在线运行等功能。

建议使用的浏览器:

谷歌Chrome 火狐Firefox Opera浏览器 微软Edge浏览器 QQ浏览器 360浏览器 傲游浏览器

1983:Name the Crossing

题目描述
The city of Kyoto is well-known for its Chinese plan: streets are either North-South or East-West. Some streets are numbered, but most of them have real names.
Crossings are named after the two streets crossing there, e.g. Kawaramachi-Sanjo is the crossing of Kawaramachi street and Sanjo street. But there is a problem: which name should come first? At first the order seems quite arbitrary: one says Kawaramachi-Sanjo (North-South first) but Shijo-Kawaramachi (East-West first). With some experience, one realizes that actually there seems to be an "order" on the streets, for instance in the above Shijo is "stronger" than Kawaramachi, which in turn is "stronger" than Sanjo. One can use this order to deduce the names of other crossings.
You are given as input a list of known crossing names X-Y. Streets are either North-South or East-West, and only orthogonal streets may cross.

As your list is very incomplete, you start by completing it using the following rule:
  • two streets A and B have equal strength if (1) to (3) are all true:
    1. they both cross the same third street C in the input
    2. there is no street D such that D-A and B-D appear in the input
    3. there is no street E such that A-E and E-B appear in the input

We use this definition to extend our strength relation:
  • A is stronger than B, when there is a sequence A = A1, A2, ..., An = B, with n at least 2,
    where, for any i in 1 .. n-1, either Ai-Ai+1 is an input crossing or Ai and Ai+1 have equal strength.

Then you are asked whether some other possible crossing names X-Y are valid. You should answer affirmatively if you can infer the validity of a name, negatively if you cannot. Concretely:
  • YES if you can infer that the two streets are orthogonal, and X is stronger than Y
  • NO otherwise
输入解释
The input is a sequence of data sets, each of the form

N
Crossing1
...
CrossingN
M
Question1
...
QuestionM
Both Crossings and Questions are of the form

X-Y
where X and Y are strings of alphanumerical characters, of lengths no more than 16. There is no white space, and case matters for alphabetical characters.
N and M are between 1 and 1000 inclusive, and there are no more than 200 streets in a data set.

The last data set is followed by a line containing a zero.

输出解释
The output for each data set should be composed of M+1 lines, the first one containing the number of streets in the Crossing part of the input, followed by the answers to each question, either YES or NO without any spaces.
输入样例
7
Shijo-Kawaramachi
Karasuma-Imadegawa
Kawaramachi-Imadegawa
Nishioji-Shijo
Karasuma-Gojo
Torimaru-Rokujo
Rokujo-Karasuma
6
Shijo-Karasuma
Imadegawa-Nishioji
Nishioji-Gojo
Shijo-Torimaru
Torimaru-Gojo
Shijo-Kawabata
4
1jo-Midosuji
Midosuji-2jo
2jo-Omotesando
Omotesando-1jo
4
Midosuji-1jo
1jo-Midosuji
Midosuji-Omotesando
1jo-1jo
0
输出样例
8
YES
NO
YES
NO
YES
NO
4
YES
YES
NO
NO

该题目是Virtual Judge题目,来自 北京大学POJ

题目来源 Japan 2004 Domestic

源链接: POJ-1983

最后修改于 2020-10-29T06:19:41+00:00 由爬虫自动更新

共提交 0

通过率 --%
时间上限 内存上限
1000 30000