致摸鱼两千年后的你
Input
125000000083559510 104166666578080702
Output
848357383
先不管香香鸡是什么,先来推个式子
我们记录钱可能情况钱的总数
答案就是钱的总数除以2^k
f[1]=((f[0]*4)%mod+fastpow(2,i-1)%mod)%mod,f[0]=f[1];
滚了一下,交了
然后挂了 50pts
发现好像不用逆元,直接化简了 60pts
发现搞来搞去就是挂了精度 60pts
发现n没取模 100pts
Code:
1 #include<iostream> 2 #define int long long 3 using namespace std; 4 const int mod=1e9+7; 5 int n,k; 6 inline int fastpow(int bas,int pow){ 7 int ans=1; 8 while(pow){ 9 if(pow&1) ans=(ans*bas)%mod; 10 bas=(bas*bas)%mod,pow>>=1; 11 } 12 return ans; 13 } 14 signed main(){ 15 cin>>n>>k; 16 n%=mod; 17 cout<<(fastpow(2,k)*(2*n-1)%mod+1); 18 }
看着是不是很水的一题
我是沙雕