#P2145. Pathological Paths

Pathological Paths

本题没有可用的提交语言。

Pathfinder教授的超链接代理问题

问题描述

Pathfinder 教授是万维网超链接结构方面的杰出权威。为了建立他的假设,他一直在开发软件代理,它可以自动遍历超链接并分析 Web 的结构。今天,他想到了一个有趣的想法来改进他的软件代理。但是,他很忙,需要优秀程序员的帮助。

您现在被要求参与他的开发团队,并且创建他的新型软件代理的小型但关键的软件模块。在遍历超链接时,Pathfinder 的软件代理会逐步生成 Web 访问部分的地图。因此,代理应维护遍历的超链接和访问过的网页的列表。

跟踪此类信息的一个问题是两个或多个不同的 URL 可以指向同一个网页。例如,通过输入以下五个 URL 中的任何一个,您最喜欢的浏览器可能会将您带到同一个网页:

http://www.ehime-u.ac.jp/ICPC/
http://www.ehime-u.ac.jp/ICPC
http://www.ehime-u.ac.jp/ICPC/../ICPC/
http://www.ehime-u.ac.jp/ICPC/./
http://www.ehime-u.ac.jp/ICPC/index.html

您的程序应该为 Pathfinder 的实验显示此类别名。井。。。但这是一个真正的挑战,要做到完美,你可能必须在你的程序中嵌入相当复杂的逻辑。恐怕即使是像您这样的优秀程序员也无法在 5 小时内完成。因此,我们使问题变得更简单一些,并且略微不切实际。

简化规则

您应该关注路径部分(即 /ICPC/, /ICPC, /ICPC/../ICPC/, /ICPC/.//ICPC/index.html)并忽略:

  • scheme 部分(例如 http://
  • 服务器部分(例如 www.ehime-u.ac.jp
  • 其他可选部分

此问题中的每个路径部分都是一个绝对路径名,它指定从根目录到分层(树形)目录结构中的某个网页的路径。路径名始终以斜杠 (/) 开头,表示根目录,后跟由斜杠分隔的路径段。例如,/ICPC/index.html 是具有两个路径段 ICPCindex.html 的路径名。

特殊规则

  1. index.html 省略规则

    • 如果路径名 /ICPC/index.html 是现有的普通文件名,则可以缩短为 /ICPC/
    • 更准确地说,如果 ICPC 是根目录下的现有目录名称,index.html/ICPC 目录下现有普通文件的名称,则 /ICPC/index.html/ICPC/ 指向同一网页
    • 最后一个斜杠也可以省略:/ICPC/ 可以进一步缩短为 /ICPC
    • /index.html 只能缩写为 /(单个斜杠)
  2. 单句点和双句点规则

    • 由单个句点 (.) 或双句点 (..) 组成的路径段始终被视为目录名称
    • . 表示目录本身
    • .. 表示父目录
    • 例如:如果 /ICPC/ 引用某个网页,则 /ICPC/.//ICPC/../ICPC/ 引用同一页面
    • /ICPC2/../ICPC/ 如果 ICPC2 是根目录下现有目录的名称,则引用同一页面;否则不引用任何网页
    • 根目录没有父目录,因此 /..//ICPC/../../index.html 不能指向任何网页

问题要求

在这个问题中,你的工作是编写一个程序来检查两个给定的路径名是否引用现有的网页,如果是,则检查它们是否相同。

输入格式

输入由多个数据集组成。每个数据集的格式如下:

N M
pathname_1
...
pathname_N
query_1_a query_1_b
...
query_M_a query_M_b
0 0

其中:

  • NNMM 都是正整数,且 N,M100N, M \leq 100
  • NN 个路径名枚举所有网页(普通文件)
  • 接下来的 MM 对路径名是需要比较的问题对

输出格式

对于每个数据集,输出 MM 个问题的答案,每个答案占一行:

  • 如果两个路径名指向同一个网页,输出 yes
  • 如果至少有一个路径名不指向输入中列出的前 NN 个网页中的任何一个,输出 not found
  • 否则输出 no

示例

输入数据 1

5 6
/home/ACM/index.html
/ICPC/index.html
/ICPC/general.html
/ICPC/japanese/index.html
/ICPC/secret/confidential/2005/index.html
/home/ACM/
/home/ICPC/../ACM/
/ICPC/secret/
/ICPC/secret/index.html
/ICPC
/ICPC/../ICPC/index.html
/ICPC/ICPC/general.html
/ICPC/japanese/.././
/ICPC/japanese/./../
/home/ACM/index.html
/home/ACM/index.html
1 4
/index.html
/index.html
/
/index.html
/index.html
/index.html
/index.html/../index.html
/../../index.html
/
/index.html
/index.html/..
0 0

输出数据 1

not found not found yes no yes not found not found yes not found not found