推导公式。
列出前5的数列,即可发现规律。
/*
推导公式
a[n] = 2^(n-1) + (n-2)*2^(n-3)
*/
#include<stdio.h>
#include<math.h>
#include<algorithm>
using namespace std;
typedef long long int64;
const int64 mod = 1e9+7;
int64 FastPow( int64 n,int64 m ){//n^m
int64 sum = 1;
while( m>=1 ){
if( m%2==1 ){
sum *= n;
sum %= mod;
}
n *= n;
n %= mod;
m/=2;
}
return sum;
}
int main(){
int T;
scanf("%d",&T);
while( T-- ){
int64 n,k;
//scanf("%lld%lld",&n,&k);
scanf("%I64d%I64d",&n,&k);
if( k>n ){
printf("0\n");
continue;
}
if( k==n ){
printf("1\n");
continue;
}
int64 delta = k-1;
int64 Index = n-delta;
if( Index==1 ){
printf("1\n");
continue;
}
if( Index==2 ){
printf("2\n");
continue;
}
//printf("%lld\n",(FastPow2(2,Index-1)%mod+FastPow2(2,Index-3)*(Index-2)%mod)%mod);
printf("%I64d\n",(FastPow(2,Index-1)%mod+FastPow(2,Index-3)*(Index-2)%mod)%mod);
}
return 0;
}
分享到:
相关推荐
300+ AC 代码 。 大数 , 线段树 , 字符串 , dp.....
2、new做两件事,一是分配内存,二是调用类的构造函数 3、new建立的是一个对象,而malloc分配的是一块内存 4、new/delete是保留字,不需要头文
本人准备2020年保研机试时刷的题目(虽然最后机试取消了,...来自某中流985,在HDU和vjudge平台上大概刷了400道。本文件地图(excel表格)包含了绝大部分我刷过的题目,笔记中具有思路、代码、总结和心得。 大佬勿入!
ACM题库,一些题目和答案,以及解题报告,传上来共享
杭电OnlineJudge 200-2099的解题报告
acm入门训练和日常训练 对于初学者以及acm爱好者有叫大帮助
ACM培训好资料!能帮助你快速提高ACM AC题目的能力,值得一下
hdu 1695 GCD(欧拉函数+容斥原理).docx
HDU的1250,主要是利用高精度加法,但是代码有点繁琐,效率不是很高
杭电ACMhdu1163
HDU1059的代码
hdu1001解题报告
Problem Description 话说,经过了漫长的一个多月,小明已经成长了许多,所以他改了一个名字叫“大明”。 这时他已经不是那个只会做100以内加法的那个“小明”了,现在他甚至会任意长度的正小数的加法。...
hdu 1574 passed sorce
HDU的一题........HDU DP动态规
acm hdu as easy as a+b
杭电ACM课件2014版之 (HDUACM201403版_02)简单数学题
hdu acm 教案 搜索入门 hdu acm 教案 搜索入门
hdu2101AC代码
HDU1042的C++代码,AC