HDU 4602 Partition
来源:互联网 发布:mac怎么连蓝牙耳机 编辑:程序博客网 时间:2024/06/10 17:58
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4602
求把数n分解,一共有2^(n-1)种分法,其中k出现的次数%10^9+7
相当于把n个物品分开,其中有一分为k
分为两种情况
前两种是一种。。。
那么第一种情况方案数为 2*(2^(n-k-1))=2^(n-k)
第二种情况方案数为 2^(i-1)*2^(n-k-i-1) 求和 1<=i<=n-k-1 即2^(n-k-2)*(n-k-1)
代码如下:
#include<cstdio>#define MOD 1000000007using namespace std;int T;long long n,k;long long pow2(int x){if (x<0){return 0;}long long sum=1;long long now=2;while (x){if (x&1){sum*=now;sum%=MOD;}now*=now;now%=MOD;x>>=1;}return sum;}int main(){scanf("%d",&T);while (T--){scanf("%I64d%I64d",&n,&k);if (k>n){printf("0\n");}else{printf("%I64d\n",(pow2(n-k)+(n-k-1)*pow2(n-k-2))%MOD);}}}
0 0
- hdu - 4602 《Partition》
- HDU 4602 Partition
- HDU 4602 Partition
- hdu-4602-Partition
- hdu 4602 Partition
- HDU 4602 Partition
- hdu 4602 Partition
- hdu(4602) Partition
- hdu 4602 Partition
- HDU 4602 Partition
- hdu 4602 Partition
- HDU 4602 Partition
- HDU 4602 Partition
- hdu 4602 Partition
- HDU 4602 Partition
- HDU 4602 Partition
- HDU 4602 Partition
- hdu 4602 Partition
- 有100个人围成一个圈,从1开始报数,报到14的这个人就要退出, 然后其他人重新开始,从1报数,到14退出。问:最后剩下的是100人中的第几个人?
- markdown学习2:Markdown编辑器之比较
- leetcode笔记--Add Binary
- python 编码问题
- 金额转换,阿拉伯数字转换成中国传统形式。例如:101000001010 转换为 壹仟零壹拾亿零壹仟零壹拾圆整
- HDU 4602 Partition
- CTeX终于要更新了
- 安卓 单例设计模式 查看方法
- linux学习第二天
- 安卓 自动弹出键盘
- jsp 界面注册、登录按钮的实现
- Mac平台中编译安装Lua运行环境及Hello Lua实例
- 新手必备的常用代码片段整理(一)
- MyISAM与InnoDB区别