c语言不定方程的二元一次,poj1061 - 同余方程,二元一次不定方程

以前不会解二元一次不定方程的时候不会做,现在会做了。

#include

#include

using namespace std;

typedef __int64 int64;

void solveType1(int64 a, int64 b, int64 & x, int64 & y, int64 & d) {

if (b == 0) {

x = 1; y = 0; d = a;

return;

}

int64 _x, _y, _d;

solveType1(b, a % b, _x, _y, _d);

x = _y;

y = _x - _y * ((a - a % b) / b);

d = _d;

}

bool solveType2(int64 a, int64 b, int64 c, int64 & x, int64 & y, int64 & d) {

int64 _x, _y, _d;

solveType1(a, b, _x, _y, _d);

// assert(a * _x + b * _y == _d);

if (c % _d != 0) return false;

int64 n = c / _d;

x = n * _x;

y = n * _y;

d = _d;

return true;

}

inline int64 getSign(int64 x) { return x < 0 ? -1 : 1; }

inline int64 iabs(int64 x) { return x < 0 ? -x : x; }

bool solveType3(int64 a, int64 b, int64 c, int64 & x, int64 & y, int64 & d) {

if (c < 0) { a = -a; b = -b; c = -c; }

int64 sa = getSign(a);

int64 sb = getSign(b);

int64 _x, _y, _d;

if (!solveType2(a * sa, b * sb, c, _x, _y, _d)) return false;

// assert(a * sa * _x + b * sb * _y == c);

x = sa * _x;

y = sb * _y;

d = _d;

return true;

}

int64 solve(int64 x, int64 y, int64 m, int64 n, int64 L) {

int64 t, k, _d;

if (!solveType3(n - m, L, x - y, t, k, _d)) return -1;

// assert((n - m) * t + L * k == x - y);

// printf("*** %I64d %I64d %I64d\n", t, k, _d);

int64 dx = iabs(L / _d);

if (t == 0) return 0;

if (t > 0) return t % dx;

if (t < 0) return (dx - ((-t) % dx)) % dx;

}

int main() {

int64 x, y, m, n, L;

scanf("%I64d %I64d %I64d %I64d %I64d", &x, &y, &m, &n, &L);

int64 ans = solve(x, y, m, n, L);

if (ans == -1) printf("Impossible\n");

else printf("%I64d\n", ans);

return 0;

}

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

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

相关文章

java中异常注意的细节1

/* public class Test{public static void main(String[] args){int i0;try{func();//区别就是该函数抛出的异常被封装了&#xff0c;外界不知道到底会不会发生该异常System.out.println("i " i);//所以这句话是有机会执行的}catch(Exception e){System.out.printl…

append 后如何删除_如何在STATA中合并数据文件呢?

❝作者&#xff1a;江小白邮箱&#xff1a;jieresearch163.com❞我们在使用stata进行数据分析时&#xff0c;可能涉及多个数据文档的合并操作或者同时使用不同数据集中的多个变量&#xff0c;这都需要我们进行文档间不同变量的归并。例如&#xff0c;我们需要使用CFPS(中国家庭…

linux 内网怎么安装git环境_linux 安装go环境

官网下载安装包The Go Programming Language​golang.google.cngo1.4.linux-amd64.tar.gz解压&#xff1a;tar -C /usr/local -zxvf go1.4.linux-amd64.tar.gz添加环境变量&#xff1a;export PATH$PATH:/usr/local/go/bin安装完成输入go测试安装成功&#xff0c;写个简单的代码…

java中异常注意问题(发生在多态是的异常问题)

/* 异常的注意事项&#xff1a; 1&#xff0c;子类在覆盖父类方法时&#xff0c;父类的方法如果抛出了异常&#xff0c;那么子类的方法只能抛出父类的异常或者该异常的子类。 2&#xff0c;如果父类抛出多个异常&#xff0c;那么子类只能抛出父类异常的子集。 简单说&#xff1…

cups支持的打印机列表_Win10“Microsoft Print to PDF”虚拟打印机不见了,如何找回?...

MS酋长很早以前在介绍Windows10的新功能时&#xff0c;就提到过《Win10原生支持把文件转换成PDF格式》&#xff0c;该功能实际上是基于“Microsoft Print to PDF”虚拟打印机来实现的。当你点击打印时&#xff0c;在打印机列表中就可以看到“Microsoft Print to PDF”虚拟打印机…

循环队列的进队算法c语言,循环队列的定义,入队算法,出队算法,遍历算法,及其代码实现-Go语言中文社区...

队列 的定义&#xff1a;一种可以是实现“先进先出”的存储结构。数据的进出类似于排队购票。队只允许队尾一端(rear)添加&#xff0c;在另一端队头(front)删除。队有队头(front)和队尾(rear)两个指针。队头front指向第一个元素&#xff0c;队尾rear指向无实际意义的元素&#…

java中paint方法和paintComponent方法的不同

/*1.由Component.java源代码中可以看见其中的paint&#xff08;&#xff09;方法体是空的&#xff0c;在Container中重写了该方法&#xff0c;其子类Window等也重写了该方法2.由JComponent.java源代码中可以看见其中的paint()方法中调用paintComponent, paintChildren, paintBo…

java office文件加水印_文档预览加水印——或可一用的防泄密方式

给文件加水印是常见的一种宣示版权的方式。像Office、WPS都自带加水印功能&#xff0c;能够给文档加上"保密"、"严禁复制"这样的水印。在多可系统中&#xff0c;也有这么一个添加水印的功能。启用该功能后&#xff0c;在使用HTML5预览时&#xff0c;多可系…

android 获取apk资源,android-apk-parser

APK解析库用于读取/解析 packageName。versionName。versionCode信息的简单类&#xff0c;以及已经编译的androidsdk文件中的更多内容。通过解压 AndroidManifest.xml 文件并解码编译好的XML二进制文件来收集这里信息&#xff0c;就可以实现。我一直在用它来实现各种android工件…

apache license 2.0如何使用防止法律纠纷_go语言使用Swaggo详细教程

相信很多程序猿和我一样不喜欢写API文档。写代码多舒服&#xff0c;写文档不仅要花费大量的时间&#xff0c;有时候还不能做到面面具全。但API文档是必不可少的&#xff0c;相信其重要性就不用我说了&#xff0c;一份含糊的文档甚至能让前后端人员打起来。 而今天这篇博客介绍的…

静态代码块,构造代码块,局部代码块演示

public class Test{static int num;static int numObj;//记录有多少个对象产生&#xff01;static{//静态代码块&#xff0c; 是用来给类进行初始化的&#xff01;//num 10;num;num *12;//没有进入静态代码块之前&#xff0c;num的初始化值是0System.out.println(num);//main(…

android执行main函数,AndroidStudio执行main方法报错

问题&#xff1a;有时在开发中想直接写一个java文件来测试一些东西&#xff0c;但是AndroidStudio执行的时候会报错。代码信息&#xff1a;public class HelloWorld {public static void main(String[] args) {System.out.println("HelloWorld");}}报错信息12:04:41:…

模拟java.util.Collection一些简单的用法

/* 需求&#xff1a;模拟java.util.Collection一些简单的用法&#xff01;注意&#xff1a;java虚拟机中并没有泛型类型的对象。泛型是通过编译器执行一个被称为类型擦除的前段转换来实现的。 1&#xff09;用泛型的原生类型替代泛型。 原生类型是泛型中去掉尖括号及其中的类型…

hive 导出json格式 文件_Hive 系列 之 基本操作合集

下面是本课程概览&#xff1a;&#xff08;1&#xff09;hive系列之简介&#xff0c;安装&#xff0c;beeline和hiveserver2&#xff08;2&#xff09;hive系列之基本操作&#xff08;3&#xff09;hive系列之udf&#xff08;4&#xff09;hive系列之二级分区和动态分区&#x…

android开发自定义view倍丝曲线,从0到1Android自定义View(四)贝塞尔曲线

原标题&#xff1a;从0到1Android自定义View(四)贝塞尔曲线2017年安卓巴士全球开发者论坛-上海站作者本文由两点水投稿&#xff0c;博客地址&#xff1a;http://www.apkbus.com/myspaceblog-911082.html前言扯来扯去&#xff0c;前面三篇自定义 View 文章&#xff0c;终于扯完了…

如何保证对象的唯一性

/* 如何保证对象的唯一性&#xff1a;1.不允许其他程序用new来创建该类对象。2.在该类创建一个本类实例。3.对外提供一个方法让其他程序可以获取该对象的引用。 */ public class Test{public static void main(String[] args){//Subject sub Subject.oSub;//这种方法不可控&am…

ios kvo 要引入_腾讯社招iOS面试记录

毕业好几年了&#xff0c;上周发送了简历给腾讯&#xff0c;参加了腾讯面试。具体部门这边就不说了。这次面试还是收获到了很多。一面电话面试&#xff1a;面试官主要是针对iOS相关的基础问题。先简单自我介绍一下自己对mrc和arc的理解谈谈对自动释放池的理解自动释放池在mrc和…

动态设置html字号,动态设置html的font-size值 (适配文字大小)

PC端(function () {function setRootFontSize() {let rem, rootWidth;let rootHtml document.documentElement;//限制展现页面的最小宽度rootWidth rootHtml.clientWidth < 1366 ? 1366 : rootHtml.clientWidth;// 19.2 设计图尺寸宽 / 100( 设计图的rem 100 )rem roo…

一个小例子对多态简单的理解

class Parent{int age;String name;public Parent(String name, int age){this.name name;this.age age;}public void writeWay(){System.out.println("毛笔!");}}class Child extends Parent{int age;String name;//这里只说为了说明一个问题&#xff0c;其实完全…

运行shell脚本时怎么知道jdk路径_Shell写脚本关于ssh执行jar包,需要刷新JDK路径的问题...

比如脚本中下面这一段ssh $i "java -jar /applog/$PROJECT/$APPNAME --server.port$SERVER_PORT >/dev/null 2>&1 &"免密登录linux服务器&#xff0c;执行jar包&#xff0c;通过ssh执行java程序&#xff0c;涉及到一个找不到JDK路径的问题&#xff0c;…