zoukankan      html  css  js  c++  java
  • 繁华模拟赛 Vincent的城堡

    #include<iostream>
    #include<cstdio>
    #include<string>
    #include<cstring>
    #include<algorithm>
    #define ll long long
    using 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;
    }
  • 相关阅读:
    微服务架构
    微服务架构
    Java语言编程
    Java语言编程
    Java语言编程
    《自己动手写云盘》 – 确立需求
    树上差分
    线性基
    BM(Berlekamp-Massey)算法
    FFT/FWT
  • 原文地址:https://www.cnblogs.com/hyfer/p/5904458.html
Copyright © 2011-2022 走看看