问题 1504 --灯的排列问题

1504: 灯的排列问题

题目描述

   设在一排上有N个格子(N≤20),若在格子中放置有不同颜色的灯,每种灯的个数记为N1,N2,……Nk(k表示不同颜色灯的个数)。
   放灯时要遵守下列规则:
① 同一种颜色的灯不能分开;
② 不同颜色的灯之间至少要有一个空位置。
   例如:N=8(格子数)
         R=2(红灯数)
         B=3(蓝灯数)
   放置的方法有:
R-B顺序
R
R
 
B
B
B
 
 
R
R
 
 
B
B
B
 
R
R
 
 
 
B
B
B
 
R
R
 
B
B
B
 
 
R
R
 
 
B
B
B
 
 
R
R
 
B
B
B
B-R顺序
B
B
B
 
R
R
 
 
B
B
B
 
 
R
R
 
B
B
B
 
 
 
R
R
 
B
B
B
 
R
R
 
 
B
B
B
 
 
R
R
 
 
B
B
B
 
R
R
 放置的总数为12种。

输入

数据输入的方式为:
N
P1(颜色,为一个字母) N1(灯的数量)
P2                     N2
   ……
Q(结束标记,Q本身不是灯的颜色)
第一行为N,下面为
P和N值分别表示颜色和数量。

输出

求出一种顺序的排列方案及排列总数。用*表示空

样例输入输出

输入#1 复制
8
R 2
B 3
Q
输出#1 复制
12
RR*BBB**
RR**BBB*
RR***BBB
*RR*BBB*
*RR**BBB
**RR*BBB

提示

序号 标题 作者 发表时间 费用 订购数 操作