bzoj1430 小猴打架
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1430
【题解】
考虑带标号无根树计数,总共是$n^{n-2}$种。
考虑顺序问题,一共是$(n-1)!$种,所以答案是$n^{n-2} * (n-1)!$。
复杂度$O(n)$
# include <stdio.h> # include <string.h> # include <iostream> # include <algorithm> // # include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; typedef unsigned long long ull; const int M = 5e5 + 10; const int mod = 9999991; int n; ll ans = 1; int main() { scanf("%d", &n); for (int i=1; i<=n-2; ++i) ans = ans * n % mod; for (int i=1; i<n; ++i) ans = ans * i % mod; cout << ans; return 0; }