OpenJudge

7222:怀表问题

总时间限制:
1000ms
内存限制:
32768kB
描述

怀表是由一个表链和一个表盘连接而成的。同时,表链又是由多个长度为1的表链组件连接而成的。小明现有一个表盘和多个长度为1的表链组件。他希望组合成一个完整的怀表当做生日礼物送给爸爸。  

表盘和表链组件的两端都有表扣可以和其它的表链组件或者表盘相连。 一共有两种表扣设计,分别是“L” “V”。表链组件和表盘的左右两端可以使用相同的或者不同的表扣设计,因此我们有以下四种不同的表链组件和表盘设计方式,“LL”, “LV”, “VL”, “VV”,如“LV”表示左端的表扣设计是”L”, 右端的表扣设计是“V”。另,表盘和表链是不允许上下左右翻转的。如果把两个表链组件或者一个表链组件和表盘相连接,那么相连部分的表扣设计必须一致。此外,还必须确保表盘可以连接到表链的任意一端。

例子1:表盘是“LV”,共有5个表链组件分别是,“LL”, “LL”, “LV”, “VL”, “VL” 。现在希望组合成长度为4的怀表(表链长度是4)。 有两种正确的表链组合方式:“VLLLLVVL” “VLLVVLLL”。而且,对于每一种表链的组合方式,表盘都可以连接到表链的左右两端 (表盘放到表链左端使用V相连,表盘放到表链右端使用L相连)。

例子2:  表盘是“LL”,共有4个表链组件分别是,“LL”, “LV”, “VL”, “VV”。现在希望组合成长度为3的怀表(表链长度是3)。有三种正确的表链组合方式:“LLLVVL”, “LVVLLL”“LVVVVL”。而且,对于每一种表链的组合方式,表盘都可以接到表链的任一端。

注意怀表的组合方式可能不唯一。每一种表链的组合方式都可以当做是一个由”L”和“V

组成的字符串。如果两种表链对应的字符串是不匹配的, 那么表链也是不相同的。

输入
标准的输入包含若干组测试数据。每组数据第一行是整数N (0 < N ≤ 40)和K (0 < K ≤ N) 。
N 代表表链组件的个数,K代表要组合成的怀表长度(表链组件的个数)。 接着的N+ 1 行描述表盘(第二行)和表链组件的表扣设计。有四种可能输入: “LV”, “LL”, “VV” 和“VL”。
输出
对于每组测试数据,输出一行。 输出“YES”, 如果可能按照要求组合成怀表,并输出可能的组合方式的数目。如果不能,则输出”NO”.
样例输入
4 4
LV
LL
LV
VL
VL
4 4
VL
LL
LV
VL
VL
样例输出
YES
2
NO
提示
提示: 本题需要使用 long long 数据类型。
全局题号
7222
添加于
2015-11-17
提交次数
571
尝试人数
182
通过人数
106