题目名称 317. [HAOI 2008]玩具取名
输入输出 name.in/out
难度等级 ★★★
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 GravatarBYVoid 于2009-04-20加入
开放分组 全部用户
提交状态
分类标签
HAOI 动态规划
分享题解
通过:128, 提交:276, 通过率:46.38%
Gravatarsha 100 0.004 s 0.17 MiB Pascal
GravatarLXYXYNT 100 0.101 s 0.27 MiB Pascal
Gravatar_Horizon 100 0.161 s 0.76 MiB C++
Gravatarthomount 100 0.170 s 0.48 MiB C++
Gravatarzys 100 0.199 s 0.40 MiB C++
Gravatarliumy 100 0.208 s 0.47 MiB C++
Gravatar_rqy 100 0.246 s 0.45 MiB C++
Gravatarpztl 100 0.252 s 0.48 MiB C++
Gravatar6434 100 0.280 s 2.07 MiB C++
GravatarHzoi_Go灬Fire 100 0.293 s 1.81 MiB C++
关于 玩具取名 的近10条评论(全部评论)
GravatarAntiLeaf
2017-05-25 16:03 6楼
GravatarAntiLeaf
2017-05-25 16:03 5楼
GravatarHzoi_chairman
2016-11-05 08:19 4楼
手抖交错题了= =
写的是个极其暴力的区间dp= =
GravatarAsm.Def
2015-03-13 21:01 3楼
回复 @天一阁 :
同。。在BZOJ上WA一万年。。
GravatarHouJikan
2015-03-13 18:21 2楼
竟然没有看到“如果没有能的方案输出“The name is wrong!””
Gravatar天一阁
2014-10-30 07:32 1楼

317. [HAOI 2008]玩具取名

★★★   输入文件:name.in   输出文件:name.out   简单对比
时间限制:1 s   内存限制:128 MiB

【题目描述】

某人有一套玩具,并想法给玩具命名。首先他选择 $WING$ 四个字母中的任意一个字母作为玩具的基本名字。然后他会根据自己的喜好,将名字中任意一个字母用“$WING$”中任意两个字母代替,使得自己的名字能够扩充得很长。

现在,他想请你猜猜某一个很长的名字,最初可能是由哪几个字母变形过来的。

【输入格式】

  • 第一行四个整数 $W、I、N、G$。表示每一个字母能由几种两个字母所替代。
  • 接下来 $W$ 行,每行两个字母,表示 $W$ 可以用这两个字母替代。
  • 接下来 $I$ 行,每行两个字母,表示 $I$ 可以用这两个字母替代。
  • 接下来 $N$ 行,每行两个字母,表示 $N$ 可以用这两个字母替代。
  • 接下来 $G$ 行,每行两个字母,表示 $G$ 可以用这两个字母替代。
  • 最后一行一个长度不超过 $Len$ 的字符串。表示这个玩具的名字。

【输出格式】

  • 一行字符串,该名字可能由哪些字母变形而得到。(按照 $WING$ 的顺序输出)
  • 如果给的名字不能由任何一个字母变形而得到则输出“The name is wrong!”

【样例输入】

1 1 1 1
II
WW
WW
IG
IIII


【样例输出】


IN

【样例解释】

  • $W$ 可以变成 $II$ 所以 $IIII$ 可以缩成 $WW$
  • $IN$ 均能变成 $WW$ 所以 $WW$ 又可以缩成 $I$ 或者 $N$
  • 所以最终答案应该按照“$WING$”的顺序输出 $IN$

【数据范围】

  • $30\%$ 的数据,满足:$Len \leq 20,W、I、N、G \leq 6$
  • $100\%$ 的数据,满足:$Len \leq 200,W、I、N、G \leq 16$