首页 > 代码库 > bzoj1430 小猴打架

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;
}
View Code

 

bzoj1430 小猴打架