hdu 4602(2013多校联赛第一场1003)
2013-07-23 19:42
148 查看
点击打开链接
题意:
给你求在
4=1+1+1+1
4=1+1+2
4=1+2+1
4=2+1+1
4=1+3
4=2+2
4=3+1
4=4
中某个值出现的次数
4中3的个数2,2的个数5,1的个数12
显然也可以找出
5中4的个数2,3的个数5,2的个数12,1的个数28
6中5的个数2,4的个数5,3的个数12,2的个数28,1的个数64
显然2->5->12->28->64
5=2*2+2^0
12=5*2+2^1
28=12*2+2^4
依次可以找出公式an=2^n+2^(n-2)*(n-1);
那个快速幂就ok了
题意:
给你求在
4=1+1+1+1
4=1+1+2
4=1+2+1
4=2+1+1
4=1+3
4=2+2
4=3+1
4=4
中某个值出现的次数
4中3的个数2,2的个数5,1的个数12
显然也可以找出
5中4的个数2,3的个数5,2的个数12,1的个数28
6中5的个数2,4的个数5,3的个数12,2的个数28,1的个数64
显然2->5->12->28->64
5=2*2+2^0
12=5*2+2^1
28=12*2+2^4
依次可以找出公式an=2^n+2^(n-2)*(n-1);
那个快速幂就ok了
#include"stdio.h" #include"string.h" #define N 1000000007 typedef __int64 LL; LL pow(LL a,LL b) { LL ans=1; a%=N; while(b) { if(b%2)ans*=a; ans%=N; a=(a*a)%N; b/=2; } return ans%N; } int main() { int T; int n,k; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&k); if(n==k) { printf("1\n"); continue; } else if(k>n) { printf("0\n"); continue; } LL ans; n-=k; if(n==1) { printf("2\n"); continue; } ans=(pow(2,n)%N+((pow(2,n-2)%N)*((n-1)%N))%N)%N; printf("%I64d\n",ans%N); } return 0; }
相关文章推荐
- 2017 杭电多校联赛第二场 1003 Maximum Sequence(单调队列)HDU 6047
- hdu 4602 Partition 快速幂,构造递推关系 (13多校#1,1003)
- HDU6034 Balala Power!(贪心,坑!!!)(2017 HDU多校联赛第一场)
- 2013 多校第一场 hdu 4602 Partition
- hdu-4864 Task 2014多校联赛第一场 贪心
- hdu 4602 Partition 快速幂,构造递推关系 (13多校#1,1003)
- hdu 4602 Partition 快速幂,构造递推关系 (13多校#1,1003)
- 2015多校第一场1003 hdu 5290 Bombing plan
- hdu 6035:Colorful Tree (2017 多校第一场 1003) 【树形dp】
- hdu 4618(2013多校联赛第二场,直接暴力)
- hdu 4602 partition 2013多校联合训练第一场
- 2016 多校联赛 第一场 HDU 5726 GCD
- 2017多校联合第一场 1003题 hdu 6035 Colorful Tree 部分对整体的贡献 + 补集思想 + 树分块
- hdu 4608(多校联赛第一场1009)
- HDU 1003 Max Sum DP .
- hdu1003 Max Sum(DP之最大子序列和)
- 【HDU 1003】 Max Sum
- HDU 1003 Max Sum (动态规划)
- [ACM] hdu 1003 Max Sum(最大子段和模型)
- hdu-1003-Max Sum