考虑递推,最后一个数肯定最大,然后倒数第二个数可以随便选一个,然后就有 $f_{2_i} = f_{2i-2}\times(2i-1)$。
于是就可以直接做了。
```cpp
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int mod = 998244353;
int n;
int ans = 1;
int fa[100005],sz[100005];
int find(int x){
if(fa[x] == x)return x;
return fa[x] = find(fa[x]);
}
void merge(int x,int y){
fa[x] = y;sz[y]+=sz[x];
}
int pro = 1;
signed main(){
cin >> n;
for(int i = 2*n-3;i>=1;i-=2)pro = pro*i%mod;
for(int i = 1;i<=n;i++)fa[i] = i,sz[i] =1;
for(int i = 1;i<n;i++){
int a,b;cin>> a >> b;
pro = pro*sz[find(a)]%mod*sz[find(a)]%mod*sz[find(b)]%mod*sz[find(b)]%mod;
merge(find(a),find(b));
}cout << pro << endl;
return 0;
}
/*
屋顶的天空是我们的
放学后夕阳也都会是我们的
不会再让步更多了
*/
```