E - Two Round Dances

it2024-12-23  11

题意:给定n个人 ,n为偶数 ,让它平均分为两组,然后如果两个序列他们的圆排列相同那他们就等价,例如 4,1,2,3 和 3,4,1,2是等价的,问有多少种分法。 思路:好多人都是查oeis,太赖皮了,我还是偷偷摸摸的看题解慢慢懂吧QAQ,那么正确的解法是啥呢,给定了一个长度为n的序列与它等价的序列(包括它自己)有n种,那么将N分成两份,一个序列重复的次数有N*N/4种,那么我们将N全排列,记得除以二,因为两组之间是没有次序的,然后去重,答案就是N!2/(NN)

#include<bits/stdc++.h> using namespace std; int main() { long long n; cin>>n; long long res=1; for(int i=1;i<=n-1;i++) res=res*i; res*=2; res/=n; cout<<res<<endl; }
最新回复(0)