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

#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;

}

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

  1. c语言 不定方程问题程序,[原创]钱币问题解答(二元一次不定方程正整数解浅析)...

    [原创]钱币问题解答(二元一次不定方程正整数解浅析) 可能很多朋友对不定方程的解法都有一定的了解,我这里只针对钱币问题对一类简单的二元一次不定方程正整数解 做些简单说明,希望会对大家有用. (严谨的数 ...

  2. 搭建文华财经博易大师信管家多国语言IQ Option二元期权源码

    搭建文华财经博易大师信管家多国语言IQ Option二元期权源码 ★稳定高并发的系统C#语言搭建: ★行情数据实时流畅不卡不顿: ★365天贴心服务保驾护航: 搭建:IQ Option二元期权.Exp ...

  3. 无迹卡尔曼滤波UKF和容积卡尔曼滤波CKF进行锂电池SOC估计的C语言版本实现,和matlab版本一样包含定参和FFRLS两种情况

    (C语言版)无迹卡尔曼滤波UKF和容积卡尔曼滤波CKF进行锂电池SOC估计的C语言版本实现,和matlab版本一样包含定参和FFRLS两种情况,已在VS2019和Ubuntu 20.04.4版本中运行 ...

  4. C语言排序方法-----二元选择排序法

    上一篇文章C语言排序方法-----选择排序法中分析了选择排序法,这篇文章分析一下选择排序法的优化算法,二元选择排序法,在选择排序法中每次找一个最大或者最小的数据放到开始位置,那么为了提高效率可以每次比 ...

  5. 计划行为理论和技术接受模型整合模型图形_音乐与语言加工的二元模型(dual modal)...

    随着科技研究手段的进步,随着心理学主导的理论从强调外在的行为向强调内在的认知转变,音乐与语言之间关系的对比探讨,成为神经心理学研究的热点,而且业已成为经典的研究范式,吸引了语言学.音乐学.神经科学等跨 ...

  6. c语言编程求二元一次方程组方程,二元一次方程组练习题 已知二元一次方程的三个系数,用C语言编程求方程的......

    导航:网站首页 > 二元一次方程组练习题 已知二元一次方程的三个系数,用C语言编程求方程的... 二元一次方程组练习题 已知二元一次方程的三个系数,用C语言编程求方程的... 相关问题: 匿名网 ...

  7. C语言:打印二元一次方程的根

    打印二元一次方程的根.通过对a和判别式的比较,输出二元一次方程的根. #include<stdio.h> #include<stdlib.h> #include<math ...

  8. (C语言)求解二元一次方程组

    OK,今天再来给大家分享一个代码 求解二元一次方程组 我们都知道 =0" class="mathcode" src="https://latex.codecog ...

  9. python怎么算二元一次方程_使用 Python 解数学方程

    说到数学题,相信大家都不陌生,从小学到大学都跟数学打交道. 其中初中的方程组,高中的二次曲线,大学的微积分最为头疼,这个项目就使用python 来解决方程组问题,微积分问题,矩阵化简. SymPy库 ...

最新文章

  1. 百度 什么是主成分分析
  2. ThinkPHP判断更新是否成功的正确方法
  3. main函数的参数argc和argv
  4. linux系统判断是否重启、关机、查询登录诊断分析简介
  5. java派生类如何使用_继承:使用基类或派生类来做东西[关闭]
  6. 万能门店小程序_关于传统门店开发微信小程序的优势
  7. mac mongodb 安装
  8. 《Effective Debugging:软件和系统调试的66个有效方法》一第5条:在能够正常运作的系统与发生故障的系统之间寻找差别...
  9. 【Python】Python第三方库安装
  10. centso7.5 安装minconda3和创建项目所需python3环境
  11. css 中引入第三方字体
  12. ubuntu16.04下ROS操作系统学习笔记(四 )机器人系组成、URDF机器人建模、xacro模型优化
  13. 【三维路径规划】基于matlab自适应遗传算法求解单无人机三维路径规划问题【含Matlab源码 214期】
  14. 2016级算法第一次练习赛-D.AlvinZH的儿时回忆——跳房子
  15. 秀球技:倒和其他无用
  16. cesium添加高德路网中文注记图及高德在线地图介绍
  17. DOTA数据集 | 数据前后处理操作系列
  18. 一圆形游泳池如图所示,现在需在其周围建一圆形过道,并在其四周围上栅栏。栅栏价格为35元/米,过道造价为20元/平方米。过道宽度为3米,游泳池半径由键盘输入。要求编程计算并输出过道和栅栏的造价。
  19. 汽车标定工具ETAS总线模块ES582.1详情介绍
  20. 微信小程序生成Excel

热门文章

  1. linux克隆后重新封装,克隆后立即在OSX上修改Linux内核源代码
  2. 基于Docker的Mysql主从复制搭建_mysql5.7.x
  3. 企业实战(Jenkins+GitLab+SonarQube)_03_Jenkins登录
  4. git Could not read from remote repository.Please make sure you have the correct access rights.
  5. Redis数据类型--散列类型
  6. php asciii 回车换行,ubuntu下关于telnet俩个特殊ascii字符回车0x0d与换行0x0a
  7. strtus2改成springboot_ssh框架使用springBoot升级迁移替换Struts2
  8. 奖学金c语言程序,奖学金 (C语言代码)
  9. 几何级数 函数 matlab,matlab 实验05数据的统计分析
  10. Python 进程 Process 模块 - Python零基础入门教程