#12249. 魔法队伍的站位

魔法队伍的站位

魔法队伍的站位

故事背景 在魔法王国的试炼大会上,有 n 位不同的魔法师排成一排站好。 其中有 k 对魔法师是​搭档组合​,他们要求在合影时 ​必须肩并肩站在一起​。 其他魔法师可以随意站。 你的任务是:根据输入,计算一共有多少种不同的站位方案。


📥 输入格式

n k
接下来 k 行,每行两个整数 a b,表示 a 和 b 必须相邻

(编号 a、b 表示的是这两位魔法师的编号,具体编号不影响计算,只要保证有 k 对。)


📤 输出格式

不同排法总数

📋 输入样例

6 2
1 2
3 4

📌 输出样例

96

提示公式

  • 把每一对搭档捆绑为一个整体, 总对象数 = n - k (因为每对用 2 个位置变成 1 个整体,所以总对象减少 k)
  • 外部排列:

(n-k)! * 每对内部互换:

2k2^k总数公式:

总数=(nk)!×2k\text{总数} = (n-k)! \times 2^k

💡 样例推导

n=6,k=2n = 6, k = 2外部对象数:

nk=62=4n-k = 6-2 = 4外部排列:

4!=244! = 24内部互换:

2k=22=42^k = 2^2 = 4总数:

24×4=9624 \times 4 = 96答案:96