首页 > 其他 > 详细

题解 UVa11609

时间:2019-11-30 23:07:18      阅读:81      评论:0      收藏:0      [点我收藏+]

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

分析 即求

\[\sum^n_{k=1}kC_n^k=\sum_{k=1}^n k\frac{n!}{k!(n-k)!}=\sum_{k=1}^nn\frac{(n-1)!}{(k-1)!(n-k)!}=n\sum_{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\n", t, n * QuickPow(2, n - 1, mod) % mod);
    }
}

题解 UVa11609

原文:https://www.cnblogs.com/whx1003/p/11964025.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!