bzoj1965 [Ahoi2005]SHUFFLE 洗牌

来源:互联网 发布:mysql 查看阻塞 编辑:程序博客网 时间:2024/05/20 06:07

找规律

题目

之后发现是解一个模方程,exgcd上。

#include<bits/stdc++.h>#define ll long longusing 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

原创粉丝点击