zoukankan      html  css  js  c++  java
  • 题解 UVa11609

    题目大意 给定一个正整数 (n),请求出所有小于 (n) 人的团队如果选出一个人作为队长的不同的方案数(假定这些人两两不相同)对 (10^9+7)取模的结果。

    分析 即求

    [sum^n_{k=1}kC_n^k=sum_{k=1}^n kfrac{n!}{k!(n-k)!}=sum_{k=1}^nnfrac{(n-1)!}{(k-1)!(n-k)!}=nsum_{k=1}^n C_{n-1}^{k-1}=n2^{n-1} ]

    快速幂即可。

    #include<bits/stdc++.h>
    using namespace std;
    
    typedef long long ll;
    const ll mod = 1E+9 + 7;
    
    int T;
    ll n;
    
    ll QuickPow(ll a, ll b, ll mod)
    {
    	ll res = 1;
    	
    	a %= mod;
    	while(b) {
    		if(b & 1) res = res * a % mod;
    		a = a * a % mod;
    		b >>= 1;
    	}
    	return res;
    }
    
    int main()
    {
    	scanf("%d", &T);
    	
    	int t = 0;
    	while(++t <= T) {
    		scanf("%d", &n);
    		printf("Case #%d: %lld
    ", t, n * QuickPow(2, n - 1, mod) % mod);
    	}
    }
    
  • 相关阅读:
    后缀数组模板~~~
    CF 196 Div2 D&&HDU 4679 && HDU 2196
    .......
    ~~~~~
    主站点~~~~
    C++抽象,封装,继承,多态
    查缺补漏知识点(二)
    Qt的简介
    C语言指针及C++引用
    C++单例模式
  • 原文地址:https://www.cnblogs.com/whx1003/p/11964025.html
Copyright © 2011-2022 走看看