POJ2115 C Looooops(线性同余方程)

无符号k位数溢出就相当于mod 2k,然后设循环x次A等于B,就可以列出方程:

$$ Cx+A \equiv B \pmod {2^k} $$ $$ Cx \equiv B-A \pmod {2^k} $$

最后就用扩展欧几里得算法求出这个线性同余方程的最小非负整数解。

 1 #include<cstdio>
 2 #include<cstring>
 3 #define mod(x,y) (((x)%(y)+(y))%(y))
 4 #define ll long long
 5 ll exgcd(ll a,ll b,ll &x,ll &y){
 6     if(b==0){
 7         x=1; y=0;
 8         return a;
 9     }
10     ll d=exgcd(b,a%b,x,y);
11     ll t=y;
12     y=x-a/b*y;
13     x=t;
14     return d;
15 }
16 ll MLES(ll a,ll b,ll n){
17     ll x,y;
18     ll d=exgcd(a,n,x,y);
19     if(b%d) return -1;
20     return mod(x*(b/d),n/d);
21 }
22 int main(){
23     ll a,b,c,k;
24     while(~scanf("%lld%lld%lld%lld",&a,&b,&c,&k) && (a||b||c||k)){
25         k=1LL<<k;
26         ll res=MLES(c,b-a,k);
27         if(res==-1) puts("FOREVER");
28         else printf("%lld\n",res);
29     }
30     return 0;
31 }

 

转载于:https://www.cnblogs.com/WABoss/p/5180434.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396826.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工作测试博客

工作测试博客转载于:https://blog.51cto.com/12559670/1895000

iphone各机型参数对比_带你了解新款iPhone 12系列四款机型

2020年10月14日凌晨1&#xff1a;00&#xff0c;苹果召开新品发布会&#xff0c;发布了新款iPhone 12系列手机&#xff0c;“果粉”们期待已久的iPhone 12终于来了。iPhone 12系列手机共有四款机型&#xff0c;分别是iPhone 12 mini、iPhone 12、iPhone 12 Pro、iPhone 12 Pro …

设置开机自启动服务

一、软链接方法 利用ln -s 命令将/etc/rc.d/init.d/目录下脚本&#xff08;注意执行权限&#xff09;软连接到 rc3目录下&#xff0c;/etc/rc.d/rc3.d 目录也就是我们一般的系统运行级别。ln -s /etc/rc.d/init.d/** /etc/rc.d/rc3.d/S**这里的S代表的是开机自启动服务&#x…

mysql benchmark基准测试

git项目地址&#xff1a; https://github.com/akopytov/sysbench 利用sysbench很容易对mysql做性能基准测试&#xff08;当然这个工具很强大&#xff0c;除了测试主流数据库性能&#xff0c;还能测试其它方面&#xff0c;详情自己看官网项目文档&#xff09; mac上的用法&#…

高并发第一弹:准备阶段 了解高并发

高并发第一弹:准备阶段 了解高并发 首先需要知道什么并发, 什么是高并发. 并发: 关于并发的学习&#xff0c;可以从JDK提供的并发包为核心开始&#xff0c;许多其他的类和封装都是对其进行扩展或者补充&#xff0c;我们来看一下Java并发包(java.util.concurrent包&#xff0c;简…

matlab立体坐标定位_【半导光电】基于光电探测器的激光章动定位算法(二)

今日光电有人说&#xff0c;20世纪是电的世纪&#xff0c;21世纪是光的世纪&#xff1b;知光解电&#xff0c;再小的个体都可以被赋能。欢迎来到今日光电&#xff01;----与智者为伍 为创新赋能----1. 章动定位算法实验前&#xff0c;首先需要对光路进行调节&#xff0c;保证经…

linux系统死机窗口移动不了怎么办,Linux 操作系统死机故障处理方法总结

hai00882008-01-30 15:53我只備份一次,我的磁帶有400G, 備份第二次,磁帶就彈出來,我的tapelist里的內容 20080130151855 DailySet1-01 reuse是不是和我的anmanda.conf的chg-manua(更換磁帶的腳本)l這個腳本有關係,-sh-3.00$ amcheck DailySet1Amanda Tape Server Host Check---…

Android:支持多选的本地相册

前段时间在做一个动态发布功能&#xff0c;需要用到图片上传。一开始直接调用的系统相册和相机&#xff0c;由于系统相机不支持多选&#xff0c;就花点时间做了个本地相册&#xff0c;在此开源下。 先上截图&#xff0c;依次为选择相册界面、相册详情界面、查看图片大图界面 相…

心灵与大脑

2019独角兽企业重金招聘Python工程师标准>>> http://blog.sina.com.cn/s/blog_6f034fc30102f2tg.html 转载于:https://my.oschina.net/chirnson/blog/832011

python入门心得_记初学python的一些心得

人生苦短&#xff0c;我用python&#xff01; 其实我自学python也很长一段时间了&#xff0c;但总是去更换学习资料&#xff0c;搞的现在学的不是很好&#xff0c;因为没更换次资料都要从头开始学起&#xff0c;那么分享下我的学习战况吧&#xff0c;不是很好&#xff0c;还将就…

罗技键盘linux,logiops,在 Linux下设置罗技鼠标的按键和手势

众所周知&#xff0c;几乎所有的消费级电子产品都不会对 Linux 有太好的支持&#xff0c;罗技当然也不例外。Logitech Options 是罗技办公鼠标的自定义功能驱动&#xff0c;很容易猜到&#xff0c;罗技只提供了Windows和Mac版本。但幸运的是&#xff0c;有人开发出了一个第三方…

16.U-boot的工作流程分析-2440

16.U-boot的工作流程分析-2440 分析的流程&#xff1a; 程序入口 第一阶段程序分析 第二阶段程序分析 2440开发板&#xff1a; 1.uboot的入口&#xff1a; 要看uboot工程的入口&#xff0c;首先打开顶层目录的Makefile&#xff1a; Uboot所支持的开发板&#xff0c;在顶层的Ma…

linux增加调整虚拟内存

增加虚拟内存&#xff1a;1、检查当前的分区情况:# free -m2、增加交换分区文件及大小&#xff0c;如果要增加1G大小的交换分区&#xff0c;则命令写法如下&#xff0c;其中的 bs等于想要的块大小&#xff0c;count是要增加多少块&#xff0c;虚拟内存的大小等于bs*count# dd i…

linux练习手册,Linux操作习题集(1)

動動手實作題&#xff1a;假設你不知道你的主機內部的各項元件資料&#xff0c;請拆開你的主機機殼&#xff0c;並將內部所有的元件拆開&#xff0c;並且依序列出&#xff1a;CPU的廠牌、型號、最高時脈&#xff1b;主記憶體的容量、介面 (DDR/DDR II等)&#xff1b;顯示卡的介…

如何使用Redis做MySQL的缓存

应用Redis实现数据的读写&#xff0c;同时利用队列处理器定时将数据写入mysql。 同时要注意避免冲突&#xff0c;在redis启动时去mysql读取所有表键值存入redis中&#xff0c;往redis写数据时&#xff0c;对redis主键自增并进行读取&#xff0c;若mysql更新失败&#xff0c;则需…

MySQL中CREATE DATABASE和CREATE SCHEMA区别(转)

在使用MS SQL的时候&#xff0c;一般创建数据库我们都习惯于使用CREATE DATABASE 来完成&#xff0c;而使用CREATE SCHEMA来创建架构&#xff0c;但是在MySQL中&#xff0c;官方的中文文档在 CREATE DATABASE 语法一节中写了一句&#xff1a;也可以使用CREATE SCHEMA。那么CREA…

psychopy 与脑电打码 eeg

2019独角兽企业重金招聘Python工程师标准>>> 实验程序就不放了&#xff0c;这里主要放如何向串口发送打码的代码 实际上&#xff0c;给脑电打码的本质就是向串口发送一个字符&#xff0c;脑电的程序会自动在收到该字符的同时在脑电数据上进行标记。以下代码打开了一…

deepin linux grub,deepin linux 安装之后 引导错误 出现 grub

deepin 安装之后 引导错误,,, 忙了一晚上 终于解决了 太辛苦了 不过明白了grub的工作原理也不亏,,,, 就是 整个过程满满的绝望 (哭具体怎么怎么回事 如下安装deepin 15.11 安装完之后不能引导 会卡在grub> 界面以上两种方式 尝试了6个小时 都是失败的 期间出现各种问题 一个…

python怎样连续输入两个数字_python实现输入数字的连续加减

不用库&#xff0c;写了很久&#xff0c;一直出bug&#xff0c;到网上一搜&#xff0c;可以直接输入之后&#xff0c;eval(str)即可得到结果&#xff01; eval程序如下&#xff1a; sinput("请输入要运算的数字") print("The result is{}".format(eval(s))…

修改JAVA代码,需要重启Tomcat的原因

准确的说只有修改方法中的内容才不需要重启&#xff0c;因为tomcat中对于方法的调用是动态的&#xff0c;调用方法的时候&#xff0c;方法的内容才会被加载 新增成员变量&#xff0c;方法&#xff0c;或修改静态方法和静态变量、创建新的类 这些都是需要重启的&#xff0c;因为…