感觉这道题目的数据好水啊。。。我的代码我都觉得姿势特别奇怪。。。竟然还过了。。。

好吧,原来不是姿势奇怪,而是逆元需要用的时候是余数也需要的时候,这里的余数是不需要的,所以就AC了

就说一下碰到的问题吧

x = (x0 + mt) % L;

y = (y0 + ny) % l;

然后x - y = 0;得到

(n - m) * t + k * l = x0 - y0;(t表示时间,k表示跑了几圈,l是一圈的长度)

然后我们和扩展欧几里得做比较:ax+by=gcd(a, b);(后面都写成gcd)

然后我们就可以发现x0-y0是已知的,那么令n-m=a,k=b,d=x0-y0,t=x,y=l;

因为d不一定是gcd,也有可能是gcd的倍数或者毫无关系

当毫无关系的时候就是impossible

当是gcd的倍数的时候,那么我们就对欧几里得进行改进。因此我们可以得到以下的式子:

(a*x*d/c) + (b*y*d/c)=d;

因此,我们的解就是x*d/c

但是这里有一个很重要的问题就是,当x时负数的时候怎么办,那么值也就是负的了呀。

因此我们想到对原来的式子进行改进,得到如下式子:

a*(x*d/c+p*b)+b*(y*d/c-p*a)=d;

所以我们的解就是((x*d/c)%b + b)% b;

转载于:https://www.cnblogs.com/heimao5027/p/5615213.html

扩展欧几里得 POJ 1061相关推荐

  1. POJ - 1061 青蛙的约会(扩展欧几里得)

    题目链接:点击查看 题目大意:两只青蛙在一个单向循环数轴上跳动,给出初始位置和每秒跳动的距离以及数轴长度,问是否可以相遇,若能相遇求出最小时间 题目分析:自从第一次接触扩展欧几里得以来已经有半年时间了 ...

  2. POJ 1061扩展欧几里得

    扩展欧几里得的模板题,需要注意的是为了得到一个最小正数解我们要使ax+by=c中的a,b都是正数 #include<cstdio> #include<cstring> #inc ...

  3. POJ 1061 青蛙的约会 (扩展欧几里得)

    青蛙的约会 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 97673   Accepted: 18409 Descripti ...

  4. POJ - 2142 The Balance(扩展欧几里得)

    题目链接:点击查看 题目大意:给出两种重量的砝码,我们需要利用天平称出指定重量的药物,我们需要求出这两种砝码各自的数量,使得砝码数量之和最小 题目分析:我们可以先列出关系式,假设两个砝码的重量分别为a ...

  5. POJ 2142——扩展欧几里得

    题目是很裸的扩展欧几里得,但是对x,y有限制条件,要求所有x,y中abs(x)+abs(y)最小,在这个条件下要求abs(a* x)+abs(b* y)最小 显然我们需要用扩展欧几里得求得一组解,问题 ...

  6. 欧几里得算法扩展欧几里得

    本文包括: 1.几里德算法 递归实现 2.扩展欧几里德算法 递归实现 -实际上就是把别人总结的,我认为有助于自己理解的内容copy过来,再加上几句自己的理解. 欧几里得算法 欧几里德算法又称辗转相除法 ...

  7. 关于扩展欧几里得求最小正整数解

    关于扩展欧几里得求最小正整数解 //扩展欧几里得算法求最小正整数解 这里讲的是欧几里得,不是那个洗澡测浮力的阿基米德 . 什么是欧几里得算法: 扩展欧几里得算法是用来求解一类特定的不定方程的,形如ax ...

  8. poj-青蛙的约会(扩展欧几里得)nyoj-小柯的约会

    由题意可列出方程 x + m * s - (y + n * s) = k * l; 化简得   (n-m)*s + k*l = x - y 化简得   (n-m)*s = x - y (mod l); ...

  9. 欧几里得定理与扩展欧几里得定理

    欧几里的定理(辗转相除法): gcd(a,b) = gcd(b,a%b) gcd(a,b)表示a,b的最大公约数 证明: 设 a > b c = a%b a = k * b + c (k为某个整 ...

最新文章

  1. 微型计算机m3500q,拆分式一体机!联想ThinkCentre 超级Q 23
  2. iOS UITableView的方法解析
  3. python里遍历筛选xml文件_python xml.etree.ElementTree遍历xml所有节点实例详解
  4. Auto packing the repository in background for optimum performance.
  5. JavaScript笔记(3)
  6. 为了减少代码复杂度,我将if-else升级为面向状态编程
  7. Java项目课程02:系统概述
  8. Oracle Restart能够用来给Oracle GoldenGate 做 High Availability 使用么?
  9. JavaScript可变参数个数
  10. 《程序设计技术》第二章例程
  11. python之MD5加密
  12. 阿里巴巴日志处理系统
  13. andorid 查看 Activity任务栈
  14. 基于微信校园二手书交易小程序系统 毕业设计毕设参考
  15. u盘1kb快捷方式病毒修复_修复“无法为2097152KB对象堆保留足够的空间” JFrog Artifactory启动错误...
  16. 【阅读笔记】《CFUN: Combining Faster R-CNN and U-net Network for Efficient Whole Heart Segmentation》
  17. Advanced Zip Password Recovery下载
  18. 各种不等式的解法收集【初级辅导和中级辅导】
  19. linux好压iso压缩文件,好压压缩文件管理器新手指南
  20. 控制系统仿真技术(二)-连续系统的数字仿真二

热门文章

  1. linux 进程 内存布局 初探
  2. 12.5.2 升12.5.3的补丁 linux下载,游戏1.17/2.12/3.8/4.5/5.2更新内容[附离线补丁下载地址]...
  3. php 插入 mysql_php插入mysql数据返回id的方法
  4. 访问vue_一起学Vue:访问API(axios)
  5. 如何让Jupyter Notebook支持pytorch、tensorflow
  6. Xinlinx 7系列 FPGA 总览
  7. 04. Mybatis的resultMap基本应用
  8. 参加“北向峰会”后对SOC之感言
  9. 树莓派安装OpenELEC
  10. 成功有感之给年轻人的10个忠告