码队做了一个神奇的梦
在梦中,码队进入了一个异世界,在这个异世界中,码队发现了一种可以结出五彩果实的神奇藤蔓,藤蔓的旁边有有一位正在浇灌的老人。
老人跟码队说,自己年轻的时候也是一位程序员,他用程序员们懂的方式向码队解读起这株藤蔓来。
老人让码队把藤蔓看成一棵大小为N的有标号的无根树,度为1 的结点视为叶子结点,每个叶子结点都会结出一棵果实(老人说这种五彩斑斓的果实叫做【奇妙果实】)。老人还告诉码队,在这个异世界里,恰好拥有所有形态的藤各一株。
码队顿时好奇起来,他想知道在这个异世界中,究竟有多少颗奇妙果实
答案对998244353取模
输入格式
输入数据仅一行,包含一个正整数N
输出格式
输出数据仅一行,包含一个正整数,表示异世界中【奇妙果实】的数数量
数据范围
样例输入
3
样例输出
6
题意:
简单的就是让你求n个点的组成的所有树中 总共有多少个叶子节点(就是每棵树上的叶子节点加起来)
n个点的无根树一共有n^(n-2) 棵 (定理)
自己写几个简单的数据
比如
N = 2 3 4
ans = 2 6 36
ans/N 1 2 9
ans = pow(N-1,N-2)* N %mod;
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const ll mod = 998244353;
const int maxn=1e6+5;
ll ksm(ll a,ll b) {
ll ans=1;
while(b) {
if(b&1) ans = (ans * a) %mod;
a =a * a%mod;
b>>=1;
}
return ans%mod;
}
int main()
{
ll n;
scanf("%lld",&n);
printf("%lld\n",n*ksm(n-1,n-2) %mod);
return 0;
}