排列组合问题
1.圆排列
圆排列:指从n个不同元素中取出m(1≤m≤n)个不同的元素排列成一个环形,既无头也无尾。两个圆排列相同当且仅当所取元素的个数相同并且元素取法一致,在环上的排列顺序一致。
计算公式:n个元素的圆排列总数为: (n - 1)!.
#include<iostream>
using namespace std;
typedef long long ll;
int main()
{
int n;
cin >> n;
ll f[21];
f[0] = 1;
for(int i = 1; i <= n; i ++) f[i] = i * f[i - 1];
ll ans = f[n] / (2 * f[n / 2] * f[n / 2]) * f[n / 2 - 1] * f[n / 2 - 1];
cout << ans << endl;
}