您的位置:首页 > 其它

hdu 6050: Funny Function (2017 多校第二场 1006) 【找规律】

2017-07-28 00:26 555 查看
题目链接

暴力打个表找下规律就好了,比赛时看出规律来了倒是,然而看这道题看得太晚了,而且高中的那些数列相关的技巧生疏了好多,然后推公式就比较慢。。其实还是自身菜啊。。

公式是



#include<bits/stdc++.h>
using namespace std;
typedef long long LL;

const LL mod=1e9+7;
LL qpow(LL x,LL n)        //求x^n%mod
{
LL ret=1;
for(; n; n>>=1)
{
if(n&1) ret=ret*x%mod;
x=x*x%mod;
}
return ret;
}
LL inv(LL x)
{
return qpow(x,mod-2);
}

int T;
LL n,m;
LL ans;

int main()
{
scanf("%d",&T);
while(T--)
{
scanf("%lld%lld",&n,&m);
if(n&1)    ans=(qpow(qpow(2,n)-1,m-1)*2%mod+1)*inv(3)%mod;
else ans=qpow(qpow(2,n)-1,m-1)*2%mod*inv(3)%mod;
printf("%lld\n",ans);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: