-->
当前位置:首页 > 题库 > 正文内容

编程题:7204 消灭女巫

Luz3年前 (2022-04-21)题库616
Kaname Madoka是个神奇的女孩,她的任务就是消灭女巫,听说很恐怖,不过这对她来说小菜一碟。
有一天,她遇到一个充满女巫的迷宫。迷宫包括很多房间,每个房间住着一个女巫。从一个房间到另外一个房间都有一条路径。就像你看到的那样,迷宫可以看做一颗大树,房间就是树的节点。
Madoka根据下面的规则来消灭女巫:
(1) 首先,Madoka进入根节点所在的房间。
(2) 如果Madoka进入的房间里有女巫,她会立即消灭掉。
(3) 如果房间有住着女巫的子节点房间,那么她就选择最左边的进入。
(4) 直到所有子节点房间里的女巫全部被消灭,她才会返回到父节点。
图7.6就是个关于迷宫的详细例子。节点里面的数字代表女巫被消灭的顺序号。节点下面的字符串表示女巫的名字,箭头表示Madoka行走路线。




<center>图7.6 迷宫</center>
完成任务后,Madoka会写篇简短的日志,类似于:
walpurgis(charlotte(patricia,gertrud),elly,gisela)
用住在房间里女巫的名字表示树。
Madoka的同学Akemi Homura是她的一个粉丝,她想详细记下Madoka做的每件事情。显然,Madoka的日志很难读,因此她决定重新写一个。
新日志包括以下信息:<br>
1. 迷宫的房间数量<br>
2. 所有房间里女巫的姓名<br>
3. Madoka行进路线(用标识节点的数字表示)<br>
因此,新的日志像这样:<br>
6<br>
walpurgis<br>
charlotte<br>
patricia<br>
gertrud<br>
elly<br>
gisela<br>
1 2<br>
2 3<br>
3 2<br>
2 4<br>
4 2<br>
2 1<br>
1 5<br>
5 1<br>
1 6<br>
6 1<br>

然而,由于迷宫很大,因此Homura需要一个程序来帮助她。

### 输入格式:

第一行是个整数T(T &lt;= 20),表示测试数据的组数。每个测试数据占一行,是一个Madoka日志字符串。迷宫最多不超过50000个房间,女巫的姓名由少于10个小写字母构成,Madoka的日志最长为1000000字符,包括小写字母&ldquo;(&rdquo;、 &ldquo;)&rdquo;和&ldquo;,&rdquo;。

### 输出格式:

对于每个测试数据,需要输出一个详细的日志。
第一行是整数N,表示房间数量。接下来的N行,每行为一个字符串,按被消灭的顺序显示女巫姓名。再接下来的2 * (N-1)行,每行2个整数,表示Madoka经过路线的起止的两个节点号。
每个测试数据之间输出一个空行。

### 输入样例:

in
3
walpurgis(charlotte(patricia,gertrud),elly,gisela)
wuzetian
nanoha(fate(hayate))


### 输出样例:

out
6
walpurgis
charlotte
patricia
gertrud
elly
gisela
1 2
2 3
3 2
2 4
4 2
2 1
1 5
5 1
1 6
6 1

1
wuzetian

3
nanoha
fate
hayate
1 2
2 3
3 2
2 1









答案:若无答案欢迎评论

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。