zoukankan      html  css  js  c++  java
  • NC13884 Paint Box(容斥原理)

    有一些常见的模型转换,对于求恰好类型的题目

    可以通过转化成不大于的形式。

    对于这题,我们转化成不大于的情况后,可以利用容斥原理求出答案

    我们定义为用不大于k种颜色染色

    这样通过容斥原理就能求出恰好是k的答案。

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    const int N=5e5+10;
    const int mod=1e9+7;
    int n,m,k;
    ll qpow(ll a,ll b){
        ll res=1;
        while(b){
            if(b&1){
                res=res*a%mod;
            }
            b>>=1;
            a=a*a%mod;
        }
        return res;
    }
    ll c(ll n,ll r){
        if(n<r) return 0;
        if(n-r<r) r=n-r;
        ll a=1,b=1;
        for(int i=0;i<r;i++)
            a=(a*(n-i))%mod,b=(b*(i+1))%mod;
        return a*qpow(b,mod-2)%mod;
    }
    int main(){
        ios::sync_with_stdio(false);
        int t;
        cin>>t;
        while(t--){
            cin>>n>>m>>k;
            ll ans=0;
            ll tmp=1;
            for(int i=k;i>=1;i--){
                ans=(ans+tmp*i%mod*qpow(i-1,n-1)%mod+mod)%mod;
                tmp=-tmp*i%mod*qpow(k-i+1,mod-2)%mod;
            }
            ans=(ans*c(m,k))%mod;
            cout<<ans<<endl;
        }
    }
    View Code
    没有人不辛苦,只有人不喊疼
  • 相关阅读:
    项目人力资源管理
    以太网交换机
    邮件协议简单学习
    信息系统开发方法
    项目成本管理
    oracle学习笔记002---oracle的体系结构
    007 项目进度管理
    乘法逆元
    RMQ __ST
    中国剩余定理(CRT)
  • 原文地址:https://www.cnblogs.com/ctyakwf/p/13952850.html
Copyright © 2011-2022 走看看