题解 | #C Looooops#

C Looooops

https://ac.nowcoder.com/acm/contest/980/J

C Looooops

思路

k 位存储系统,意思是能储存的最大数为 2^k-1,越过了会变为 0

所以 A + x*C 图片说明 B(mod 2^k)
利用扩欧求得 x 即可

Code

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

ll exgcd(ll a,ll b,ll &x,ll &y){
    if(!b){
        x=1,y=0;
        return a;
    }

    ll d=exgcd(b,a%b,y,x);
    y-=a/b*x;

    return d;
}

ll get_mod(ll a,ll b){
    return (a%b+b)%b;
}

int main(){
    ll A,B,C,k;

    while(cin>>A>>B>>C>>k){
        if(A==0&&B==0&&C==0&&k==0) break;

        ll a=C,b=(ll)1<<k,c=B-A;

        ll x=0,y=0;
        ll d=exgcd(a,b,x,y);

        if(c%d) puts("FOREVER");
        else{
            x*=c/d;
            x=get_mod(x,b/d);
            cout<<x<<endl;
        }
    }

    return 0;
}
全部评论

相关推荐

07-04 21:23
已编辑
东莞城市学院 后端
秋招和春招只收到几个中大厂的笔试,本人比较菜,感觉大厂的笔试太难,算法题不能全部做出来就没过了,但是CVTE和小天才的感觉不是很难,基本上都做出来了,笔试还是挂了。Boss上投了Java后端开发都没有回音,boss上有面试机会都是C#工控软件开发方向的,但是这个方向不太懂,资料又少,面试的表现有点差,现在还是想看看Java这边,面试的时候比较有把握点。想请教一下,这份简历还有什么问题,一直没什么机会,还有什么地方要修改的。
程序员小白条:学历太差,民办和公办,外包还得区分的,这个学历+这个简历,没的办法,除非你有人脉,太难了,这环境,何况你都毕业了,连一段实习都没,肯定没公司会挑选了,没竞争力,开发才招几个人,跟你竞争的可不是二本,三本的人哦,何况你在二本,三本里面也排名不高
投递小天才等公司7个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 12:04
毕业生招你惹你了,问一个发薪日来一句别看网上乱七八糟的你看哪个工作没有固定发薪日扭头就取消了面试就问了一句公司都是这个态度吗还搞上人身攻击了...
程序员小白条:呃呃呃,都还没面试,我都不会问这么细,何况通不通过,去不去都另说,你没实力和学历的话,在外面就这样,说实话没直接已读不回就不错了,浪费时间基本上
点赞 评论 收藏
分享
05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
找工作时遇到的神仙HR
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务