UVA11609 - Teams(组合数学+快速幂)
来源:互联网 发布:fireworks mac版 编辑:程序博客网 时间:2024/06/06 03:22
题目链接
题意:从N个人中选出K个人为一只队伍(1 <= K <= N),每个队伍都要有一个队长,当队长不同时,所代表的队伍也不同,求一共可以选出多少只队伍。
思路:依题目可得ans = sum(i * C(i, n)),化简可得ans = n * sum(C(i, n - 1)) = n * 2 ^ (n - 1)。之后用快速幂求解。
代码:
#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>typedef long long ll;const int MOD = 1000000007;using namespace std;ll n;/*ll pow_mod(ll k) { if (k == 0) return 1; if (k == 1) return 2; ll a = pow_mod(k / 2); ll ans = a * a % MOD; if (k % 2) ans = ans * 2 % MOD; return ans;}*/ll pow_mod(ll k) { ll ans = 1; ll temp = 2; while (k) { if (k & 1) ans = ans * temp % MOD; k >>= 1; temp = (temp * temp) % MOD; } return ans;}int main() { int cas, t = 1; scanf("%d", &cas); while (cas--) { scanf("%lld", &n); ll ans = pow_mod(n - 1); ans = ans * n % MOD; printf("Case #%d: %lld\n", t++, ans); } return 0;}
1 0
- UVA11609 - Teams(组合数学+快速幂)
- UVa11609 - Teams(快速求幂)
- Teams(uva11609+组合)
- uva 11609 - Teams(组合数学+快速幂)
- Uva11609 teams
- UVa11609 Teams
- UVa-11609 Teams(组合+快速幂)
- UVa 11609 Teams(快速幂+数学)
- UVa 11609 Teams (组合数学)
- UVa 11609 Teams (组合数学)
- UVa 11609 - Teams(组合数+快速幂)
- UVa 11609 - Teams (组合数学)
- UVA 11609 - Teams 组合、快速幂取模
- Uva 11609 - Teams 解题报告(组合数学)
- Codeforces 478B Random Teams(组合数学)
- 【快速幂、组合数学】BZOJ1008 [HNOI2008]越狱
- UVA11609
- UVa11609
- 别忘记带她去一次鼓浪屿
- 面试题15 链表中倒数第K个结点
- 关于oracle数据库移植的注意点
- Linux C编程--进程介绍3--进程终止和等待
- 机房重构----设计模式那点儿事儿
- UVA11609 - Teams(组合数学+快速幂)
- C#中使用HttpWebRequest用Post提交MultiPart数据
- [Windows] PuttyGen保存的Key文件消失了?!!!
- POJ 2828 Buy Tickets
- BSP
- String类的实现
- UVA 10375 Choose and divide
- 大学报到前最后的技术——VMware探究
- busybox构建mini6410开发板的yaffs文件系统