首页 > 代码库 > 繁华模拟赛 Vincent的城堡
繁华模拟赛 Vincent的城堡
#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>#define ll long longusing namespace std;const ll mod = 1000000007;ll n,k,c[20][20];ll ansa,ansb,ans;void get_c(){ for(int i = 1;i <= 10;i++){ c[i][0] = c[i][i] = 1; c[i][1] = c[i][i-1] = i; } for(int i = 2;i <= 10;i++){ for(int j = 2;j < i;j++){ c[i][j] = c[i-1][j-1] + c[i-1][j]; } }}ll q_mul(ll a,ll b){ ll ans = 0; while(b){ if(b&1){ ans = (ans + a) % mod; } a = (a + a) % mod; b >>= 1; } return ans;}ll q_pow(ll a,ll b){ ll ans = 1; while(b){ if(b&1){ ans = q_mul(ans,a); } a = q_mul(a,a); b >>= 1; } return ans;}int main(){ freopen("castle.in","r",stdin); freopen("castle.out","w",stdout); cin>>n>>k; get_c(); ansb = q_pow(n-k,n-k); ansa = q_pow(k,k-1);//诡异结论 ans = q_mul(ansa,ansb); cout<<ans; return 0;}
繁华模拟赛 Vincent的城堡
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。