Luogu

假设两只青蛙一共跳了 \(t\) 次,那么可以得到

\[x+tm≡y+tn\ (mod\ \ \ l)\]

将这个式子拆开

\[(x+tm) \ \ \ mod \ \ \ l=(y+tn)\ \ \ mod\ \ \ l\]

可得

\[l|(x+tm-y-tn)\]

设\(\frac{x+tm-y-tn}{l}=r\)

可得

\[x+tm-y-tn=lr\]

合并一下同类项

\[t(m-n)+x-y=lr\]

移一下项

\[t(m-n)-lr=y-x\]

将两边都乘 \(-1\)

\[t(n-m)+lr=x-y\]

可以发现就是一个不定方程,拓展欧几里得求解即可。

拓展欧几里得够求解类如\(ax+by=c\)的不定方程,其中\(gcd(a,b)|c\),所以只要\((x-y)\ \ \ mod \ \ \ gcd(n-m,L)≠0\)就是无解的了。

#include <iostream>
#include <cstdio>
#include <algorithm>typedef long long ll;ll X, Y, N, M, L, T, R;ll gcd(ll x, ll y)
{return y ? gcd(y, x % y) : x;
}void ex_gcd(ll a, ll b, ll c, ll &x, ll &y)
{if(b == 0){x = c / a;y = 0;return;}ex_gcd(b, a % b, c, y, x);y = y - (a / b) * x;
}int main()
{scanf("%lld %lld %lld %lld %lld", &X, &Y, &M, &N, &L);if(N < M){std::swap(X, Y);std::swap(N, M);}if((X - Y) % gcd(N - M, L)){puts("Impossible");return 0;}       ex_gcd(N - M, L, X - Y, T, R);printf("%lld\n", (T % (L / gcd(N - M, L)) + (L / gcd(N - M, L))) % (L / gcd(N - M, L)));return 0;
}

转载于:https://www.cnblogs.com/zcdhj/p/8478353.html

Luogu1515 青蛙的约会相关推荐

  1. P1516 青蛙的约会 [exgcd]

    P1516 青蛙的约会 题意:在一个长为\(l\)的环上面有两只青蛙,一只出发点为\(x\),一次跳\(m\),另一只出发点为\(y\),一次跳\(n\),求相遇时间. 这个长为\(l\)的环不难想到 ...

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

                                                                   青蛙的约会 Time Limit: 1000MS   Memory Lim ...

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

    POJ 1061 BZOJ 1477 Luogu P1516 青蛙的约会 (扩展欧几里得算法) 手动博客搬家: 本文发表于20180226 23:35:26, 原地址https://blog.csdn ...

  4. 数学--数论--POJ 1061青蛙的约会 (扩展欧几里得算法)

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

  5. 数论:扩展欧几里德(洛谷P1516 青蛙的约会)

    欧几里德 基本思想:gcd(q,r)=gcd(r,q%r); 证明,设q.r的最大公因数为a,则q=xa,r=ya,xy互质 不妨设x>y(显然如果小于会在一次gcd运算后交换) 则q%r=(x ...

  6. 1477: 青蛙的约会

    1477: 青蛙的约会 Time Limit: 2 Sec  Memory Limit: 64 MB Submit: 261  Solved: 164 [Submit][Status][Discuss ...

  7. [BZOJ1477] 青蛙的约会|扩展欧几里得算法

    1477: 青蛙的约会 Time Limit: 2 Sec  Memory Limit: 64 MB Submit: 306  Solved: 192 [Submit][Status][Discuss ...

  8. POJ1061 青蛙的约会【扩展欧几里得算法】

    青蛙的约会 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 126746   Accepted: 27392 Descript ...

  9. 1010 -- 青蛙的约会

    青蛙的约会 Time Limit:1000MS  Memory Limit:65536K Total Submit:181 Accepted:44 Description Description 两只 ...

最新文章

  1. web.xml 中的listener、 filter、servlet 加载顺序及其详解
  2. Notepad++远程连接Linux系统
  3. __attribute__ 之weak,alias属性
  4. Python 超简单一键美化你的文章
  5. Android中Bitmap和Drawable详解
  6. 查看postgresql 磁盘占用_一个能融会贯通PostgreSQL监控的人,大概率是高手
  7. Ros使用自定义数据通讯无法收到消息的分析和解决
  8. 数据库入门-pymysql模块的使用
  9. linux读usb转ttl串口数据,ubuntu16.04使用USB转TTL(ch340)串口转usb调试过程
  10. C#操作Access数据库(查询,更新,插入)
  11. UTF-8转GBK(GBK转UTF-8)
  12. 一文读懂生成对抗网络(GANs)【下载PDF | 长文】
  13. 电阻为何是标准的及各精度的标准阻值表
  14. Hibernate 参数查询
  15. 史上最牛总结!电源完整性设计请看这一篇
  16. 2020年郑州大学计算机录取分数线,2020年郑州大学各省各专业录取分数线
  17. # 免费短信测试服务-容联云使用
  18. Docker--网络模式
  19. 毕业设计 单片机森林远程智能火灾监控系统
  20. 【Error】 Linux系统“检测到系统程序错误”

热门文章

  1. unity ab包加载_Unity资源管理和打包
  2. FastDFS服务器搭建
  3. IntelliJ IDEA如何build path
  4. MYSQL5.6服务启动不起来
  5. ios中amplify配置configure_Asp.netCore3.0 简单的webapi接口 (中)
  6. python 迭代器协议斐波那契数列
  7. 基于HTML5的iPad电子杂志横竖屏自适应方案
  8. karma如何与测试框架合作2之webpack
  9. FileProvider的使用
  10. C# 判断一个字符串是否为url