zoukankan      html  css  js  c++  java
  • [poj] 2115 C Looooops

    原题

    ex_gcd板子题
    (cx+2^ky=b-a(mod 2^k))

    #include<cstdio>
    typedef long long ll;
    using namespace std;
    ll a,b,c,k,m[40],x,y,gg,A,B,C;
    
    ll ex_gcd(ll a,ll b,ll &x,ll &y)
    {
        if (!b)
        {
    	x=1;
    	y=0;
    	return a;
        }
        int r=ex_gcd(b,a%b,y,x);
        y-=a/b*x;
        return r;
    }
    
    int main()
    {
        m[0]=1;
        for (int i=1;i<=32;i++) m[i]=m[i-1]*2;
        while(~scanf("%lld%lld%lld%lld",&a,&b,&c,&k))
        {
    	if (!a && !b && !c && !k) break;
    	A=c;
    	B=m[k];
    	C=(b-a+m[k])%m[k];
    	gg=ex_gcd(A,B,x,y);
    	if (C%gg)
    	{
    	    printf("FOREVER
    ");
    	    continue;
    	}
    	A/=gg;
    	B/=gg;
    	C/=gg;
    	x=(x*C%B+B)%B;
    	printf("%lld
    ",x);
        }
        return 0;
    }
    
  • 相关阅读:
    Java自学
    java自学
    Java自学
    每日总结
    每日总结
    每日总结
    每日总结
    每日总结
    每日总结
    每日总结
  • 原文地址:https://www.cnblogs.com/mrha/p/7929790.html
Copyright © 2011-2022 走看看