扩展欧几里得 POJ 1061
感觉这道题目的数据好水啊。。。我的代码我都觉得姿势特别奇怪。。。竟然还过了。。。
好吧,原来不是姿势奇怪,而是逆元需要用的时候是余数也需要的时候,这里的余数是不需要的,所以就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相关推荐
- POJ - 1061 青蛙的约会(扩展欧几里得)
题目链接:点击查看 题目大意:两只青蛙在一个单向循环数轴上跳动,给出初始位置和每秒跳动的距离以及数轴长度,问是否可以相遇,若能相遇求出最小时间 题目分析:自从第一次接触扩展欧几里得以来已经有半年时间了 ...
- POJ 1061扩展欧几里得
扩展欧几里得的模板题,需要注意的是为了得到一个最小正数解我们要使ax+by=c中的a,b都是正数 #include<cstdio> #include<cstring> #inc ...
- POJ 1061 青蛙的约会 (扩展欧几里得)
青蛙的约会 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 97673 Accepted: 18409 Descripti ...
- POJ - 2142 The Balance(扩展欧几里得)
题目链接:点击查看 题目大意:给出两种重量的砝码,我们需要利用天平称出指定重量的药物,我们需要求出这两种砝码各自的数量,使得砝码数量之和最小 题目分析:我们可以先列出关系式,假设两个砝码的重量分别为a ...
- POJ 2142——扩展欧几里得
题目是很裸的扩展欧几里得,但是对x,y有限制条件,要求所有x,y中abs(x)+abs(y)最小,在这个条件下要求abs(a* x)+abs(b* y)最小 显然我们需要用扩展欧几里得求得一组解,问题 ...
- 欧几里得算法扩展欧几里得
本文包括: 1.几里德算法 递归实现 2.扩展欧几里德算法 递归实现 -实际上就是把别人总结的,我认为有助于自己理解的内容copy过来,再加上几句自己的理解. 欧几里得算法 欧几里德算法又称辗转相除法 ...
- 关于扩展欧几里得求最小正整数解
关于扩展欧几里得求最小正整数解 //扩展欧几里得算法求最小正整数解 这里讲的是欧几里得,不是那个洗澡测浮力的阿基米德 . 什么是欧几里得算法: 扩展欧几里得算法是用来求解一类特定的不定方程的,形如ax ...
- poj-青蛙的约会(扩展欧几里得)nyoj-小柯的约会
由题意可列出方程 x + m * s - (y + n * s) = k * l; 化简得 (n-m)*s + k*l = x - y 化简得 (n-m)*s = x - y (mod l); ...
- 欧几里得定理与扩展欧几里得定理
欧几里的定理(辗转相除法): gcd(a,b) = gcd(b,a%b) gcd(a,b)表示a,b的最大公约数 证明: 设 a > b c = a%b a = k * b + c (k为某个整 ...
最新文章
- 微型计算机m3500q,拆分式一体机!联想ThinkCentre 超级Q 23
- iOS UITableView的方法解析
- python里遍历筛选xml文件_python xml.etree.ElementTree遍历xml所有节点实例详解
- Auto packing the repository in background for optimum performance.
- JavaScript笔记(3)
- 为了减少代码复杂度,我将if-else升级为面向状态编程
- Java项目课程02:系统概述
- Oracle Restart能够用来给Oracle GoldenGate 做 High Availability 使用么?
- JavaScript可变参数个数
- 《程序设计技术》第二章例程
- python之MD5加密
- 阿里巴巴日志处理系统
- andorid 查看 Activity任务栈
- 基于微信校园二手书交易小程序系统 毕业设计毕设参考
- u盘1kb快捷方式病毒修复_修复“无法为2097152KB对象堆保留足够的空间” JFrog Artifactory启动错误...
- 【阅读笔记】《CFUN: Combining Faster R-CNN and U-net Network for Efficient Whole Heart Segmentation》
- Advanced Zip Password Recovery下载
- 各种不等式的解法收集【初级辅导和中级辅导】
- linux好压iso压缩文件,好压压缩文件管理器新手指南
- 控制系统仿真技术(二)-连续系统的数字仿真二
热门文章
- linux 进程 内存布局 初探
- 12.5.2 升12.5.3的补丁 linux下载,游戏1.17/2.12/3.8/4.5/5.2更新内容[附离线补丁下载地址]...
- php 插入 mysql_php插入mysql数据返回id的方法
- 访问vue_一起学Vue:访问API(axios)
- 如何让Jupyter Notebook支持pytorch、tensorflow
- Xinlinx 7系列 FPGA 总览
- 04. Mybatis的resultMap基本应用
- 参加“北向峰会”后对SOC之感言
- 树莓派安装OpenELEC
- 成功有感之给年轻人的10个忠告