列表

详情


NC217857. 铬合金之声

描述

Chrome VOX
「铬合金是一张  个结点的图 ,结点编号为 ,初始时不存在任何边。
请在其间连接  条无向边使得这张图恰好存在  个极大连通块。
一个方案的声音为所有极大连通块大小的乘积,求所有方案的声音之和,对  取模。
一个连通块是一个点集 ,满足其中任意两个点可以互相到达。
一个极大连通块是一个点集 ,满足其中加入任意结点都不是连通块。
两种方案不同,当且仅当存在两个结点在一种方案中连边而在另一种方案中没有。

输入描述

第一行,两个正整数 

输出描述

一行,一个非负整数,表示答案。

示例1

输入:

3 1

输出:

6

示例2

输入:

5 3

输出:

500

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++(clang++11) 解法, 执行用时: 95ms, 内存消耗: 412K, 提交时间: 2021-03-19 22:26:08

using namespace std;
#include <bits/stdc++.h>
#define M 10000005
#define ll long long
#define mo 1000000007
ll qpow(ll x,ll y=mo-2){
	ll r=1;
	for (;y;y>>=1,x=x*x%mo)
		if (y&1)
			r=r*x%mo;
	return r;
}
int n,m;
int main(){
	scanf("%d%d",&n,&m);
	ll pro=1;
	for (int i=1;i<=m;++i)
		pro=pro*i%mo;
	pro=qpow(pro);
	for (int i=n-m;i<=n-1;++i)
		pro=pro*i%mo;
	pro=pro*qpow(n,m)%mo;
	printf("%lld\n",pro);
	return 0;
}

上一题