题目链接:P1516 青蛙的约会

考察拓欧与推式子\(qwq\)。

题意翻译?

求满足

\[\begin{cases}md+x\equiv t\pmod{l}\\nd+y\equiv t\pmod{l}\end{cases}
\]

的最小整数解\(d\)。

我们设(以下均满足\(n\geqslant m\)):

\[\begin{cases}md+x=y_1l+t\\nd+y=y_2l+t\end{cases}
\]

两式相减,即得:

\[(n-m)d+(y-x)=l(y_2-y_1)
\]

这样我们就把不确定的\(t\)消掉了!

我们再把它转化成模\(l\)意义的 :

\[(n-m)d\equiv x-y+l\pmod{l}
\]

扩欧解方程即可,无解即为\(Impossible\)。

时间复杂度是\(O(logn)\),可以通过本题。

\(Code\):

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long ll;
long long l,x,y,m,n;
inline void exgcd(ll a,ll b)
{
if(b==0)
{
x=1,y=0;
return;
}
exgcd(b,a%b);
ll t=x;
x=y;
y=t-a/b*y;
}
ll gcd(ll a,ll b){return b==0?a:gcd(b,a%b);}
void solve(ll a,ll b,ll c)
{
ll g=gcd(a,b);
if(c%g!=0)
{
printf("Impossible\n");
return;
}
a/=g,b/=g,c/=g;
exgcd(a,b);
x=x*c;
x=(x%b+b)%b;
printf("%lld\n",x);
}
int main()
{
scanf("%lld%lld%lld%lld%lld",&x,&y,&m,&n,&l);
if(n<m) swap(x,y),swap(m,n);
solve((n-m)%l,l,(x-y+l)%l);
return 0;
}

解题报告:luogu P1516 青蛙的约会的更多相关文章

  1. 解题报告:poj1061 青蛙的约会 - 扩展欧几里得算法

    青蛙的约会 writer:pprp Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 119716 Accepted: 25238 ...

  2. POJ 1061 BZOJ 1477 Luogu P1516 青蛙的约会 (扩展欧几里得算法)

    手动博客搬家: 本文发表于20180226 23:35:26, 原地址https://blog.csdn.net/suncongbo/article/details/79382991 题目链接: (p ...

  3. [Luogu P1516]青蛙的约会

    按照题意,显然可以列出同余方程,k即为所求天数,再将其化为不定方程 ,那么对这个方程用扩展欧几里德算法即可得出k,q的一组解,但是方程有解的充要条件是(m – n) 和L不同时为零并且x – y是m ...

  4. luogu P1516 青蛙的约会(线性同余方程扩展欧几里德)

    题意 题解 做了这道题,发现扩欧快忘了. 根据题意可以很快地列出线性同余方程. 设跳了k次 x+mkΞy+nk(mod l) (m-n)kΞ-(x-y)(mod l) 然后化一下 (m-n)k+(x- ...

  5. 洛谷 P1516 青蛙的约会 解题报告

    P1516 青蛙的约会 题目描述 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件 ...

  6. P1516 青蛙的约会

    P1516 青蛙的约会x+mt-p1L=y+nt-p2L(m-n)t+L(p2-p1)=y-x令p=p2-p1(m-n)t+Lp=y-x然后套扩欧就完事了 #include<iostream&g ...

  7. 洛谷——P1516 青蛙的约会

    P1516 青蛙的约会 题目描述 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件 ...

  8. P1516 青蛙的约会和P2421 [NOI2002]荒岛野人

    洛谷 P1516 青蛙的约会 . 算是手推了一次数论题,以前做的都是看题解,虽然这题很水而且还交了5次才过... 求解方程\(x+am\equiv y+an \pmod l\)中,\(a\)的最小整数 ...

  9. 【Luogu】P1516青蛙的约会(线性同余方程,扩展欧几里得)

    题目链接 定理:对于方程\(ax+by=c\),等价于\(a*x=c(mod b)\),有整数解的充分必要条件是c是gcd(a,b)的整数倍. ——信息学奥赛之数学一本通 避免侵权.哈哈. 两只青蛙跳 ...

随机推荐

  1. Jmeter调度器小记

    jmeter的调度器中[持续时间(秒)]的优先级是高于[结束时间]和[启动时间]的 举例子: 前提:[循环次数]勾选[永远] 场景1:[持续时间(秒)]设置为120S,[启动时间]设置T+1min,[ ...

  2. Spring Boot FreeMarker 使用教程

    FreeMarker 跟 Thymeleaf 一样,是一种模板引擎,他可以无缝兼容 FreeMarker 在 Spring Boot 开发者中仍然有着很高的地位. 本章重点内容 编写一个最简单的 Fr ...

  3. 找到第N个字符

    找到第N个字符 小黑黑上课的时候走神儿,鬼使神差的就想到了这么一个问题,假如: S​1=a S​2=ab S​3=abc S​4=abcd S​26=abcdefghijklmnopqrstuvwxy ...

  4. 创建Ajax兼容

    var request = new XMLHttpRequest(); IE7以下: var request = new ActiveXObject("Microsoft.XMLHTTP&q ...

  5. GitHub vs. Bitbucket 不只是功能不同

    https://www.oschina.net/translate/bitbucket-vs-github-its-more-than-just-features 让我们回到2005年,Bitkeep ...

  6. Python 基础之面向对象之装饰器@property

    一.定义 装饰器@property可以把方法变成属性使用作用: 控制类内成员的获取 设置 删除获取 @property设置 @自定义名.setter删除 @自定义名.deleter 二.具体实现 1. ...

  7. 女神说拍了一套写真集想弄成素描画?很简单,用Python就行了!

    素描作为一种近乎完美的表现手法有其独特的魅力,随着数字技术的发展,素描早已不再是专业绘画师的专利,今天这篇文章就来讲一讲如何使用python批量获取小姐姐素描画像.文章共分两部分: 第一部分介绍两种使 ...

  8. 小白学 Python 爬虫:Selenium 获取某大型电商网站商品信息

    目标 先介绍下我们本篇文章的目标,如图: 本篇文章计划获取商品的一些基本信息,如名称.商店.价格.是否自营.图片路径等等. 准备 首先要确认自己本地已经安装好了 Selenium 包括 Chrome ...

  9. hyfhaha大事记——luogu

    成就墙 AK CSP-J 初赛 AK CSP-J 复赛 CSP- J 一等奖 CSP-S 一等奖 大事记 2017-09-20 13:54 注册洛谷账号 之后洛谷一直处于沉沦状态 2018 2018- ...

  10. gitlab的搭建与使用(一)

    yum install curl policycoreutils openssh-server openssh-clients postfix -y systemctl enable sshd sys ...