#4935. [USACO13MAR] Breed Assignment B
[USACO13MAR] Breed Assignment B
题目描述
农夫约翰有N头奶牛(2 ≤ N ≤ 15),每头奶牛可能属于三个品种之一:荷斯坦牛(Holstein)、泽西牛(Jersey)或根西牛(Guernsey)。
不幸的是,约翰记不清每头奶牛的具体品种了!但他记得K对奶牛之间的品种关系:例如,他可能记得奶牛1和2是同品种的,或者奶牛1和5是不同品种的。
根据约翰记录的奶牛品种关系,请计算可能的品种分配方案总数(如果记录中存在矛盾信息,则结果为0)。
输入格式
第一行:两个空格分隔的整数N和K
接下来K行:每行描述一对奶牛的关系,格式为:
- "S x y" 表示奶牛x和y同品种
- "D x y" 表示奶牛x和y不同品种 (1 ≤ x,y ≤ N,x ≠ y)
输出格式
一个整数,表示满足条件的品种分配方案数
输入输出样例
输入 #1
4 2
S 1 2
D 1 3
输出 #1
18
样例解释
有4头奶牛,已知:
- 奶牛1和2同品种
- 奶牛1和3不同品种
前3头奶牛的可行分配方案有6种:
- HHG, HHJ
- GGH, GGJ
- JJH, JJG
对于每种前3头奶牛的分配方案,第4头奶牛有3种可能的品种选择(H/J/G),因此总共有6×3=18种满足条件的分配方案。