题目来源:2014-2015 ACM-ICPC, Asia Xian Regional Contest
F. Color
第一道二项式反演。。膜题解: https://www.cnblogs.com/wmrv587/p/6681953.html
#include<bits/stdc++.h>
typedef long long ll;
const ll mod = 1e9 + 7;
using namespace std;
ll q_pow(ll a,ll b){
ll ans=1;
while(b){
if(b&1)ans=(ans*a)%mod;
a=(a*a)%mod;
b>>=1;
}
return ans;
}
ll n,m,k,inv[1000007];
ll C(ll n,ll m){ll t=1;
for(ll i=n-m+1;i<=n;++i)t=(t*i)%mod;
for(ll i=1;i<=m;++i)t=(t*inv[i])%mod;
return t;
}
ll a(ll x){return ((x%mod)*q_pow(x-1,n-1)%mod)%mod;}
int T,K;
int main() {
scanf("%d",&T);
for(int i=1;i<=1e6;++i)inv[i]=q_pow(i,mod-2);
while(T--){
scanf("%lld%lld%lld",&n,&m,&k);
ll ans=0,w=1,Cki=1;if(k%2)w=-1;
for(int i=0;i<=k;++i,w=-w){
ans = (ans%mod + (w*(Cki%mod*a(i)%mod)%mod+mod)%mod)%mod;
Cki=(((Cki%mod)*(k-i)%mod)*inv[i+1]%mod)%mod;
}
ans = (ans*C(m,k))%mod;
printf("Case #%d: %lld\n",++K,ans);
}
}
C. The Problem Needs 3D Arrays
将有逆序关系的点相连,题目转化为,求最大密度子图。回去复习论文。。
原文:https://www.cnblogs.com/RRRR-wys/p/9048819.html