找规律
之后发现是解一个模方程,exgcd上。
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n,m,l,x,y,ans;
ll ksm(ll a,ll b,ll c)
{
ll ans=1;
while(b)
{
if(b&1)ans=ans*a%c;
b>>=1;
a=a*a%c;
}
return ans;
}
ll ex_gcd(ll a,ll b,ll &x,ll &y)
{
if(b==0)
{
x=1,y=0;
return a;
}
ll tmp=ex_gcd(b,a%b,y,x);
y=y-a/b*x;
return tmp;
}
int main()
{
cin>>n>>m>>l;n++;
m=ksm(2,m,n);
ex_gcd(n,m,x,y);
ans=y*l%n;
ans=(n+ans%n)%n;
cout<<ans;
return 0;
}
日常数学题跑的慢233