Luogu1515 青蛙的约会
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 青蛙的约会相关推荐
- P1516 青蛙的约会 [exgcd]
P1516 青蛙的约会 题意:在一个长为\(l\)的环上面有两只青蛙,一只出发点为\(x\),一次跳\(m\),另一只出发点为\(y\),一次跳\(n\),求相遇时间. 这个长为\(l\)的环不难想到 ...
- POJ 1061 青蛙的约会(扩展欧几里得)
青蛙的约会 Time Limit: 1000MS Memory Lim ...
- POJ 1061 BZOJ 1477 Luogu P1516 青蛙的约会 (扩展欧几里得算法)
POJ 1061 BZOJ 1477 Luogu P1516 青蛙的约会 (扩展欧几里得算法) 手动博客搬家: 本文发表于20180226 23:35:26, 原地址https://blog.csdn ...
- 数学--数论--POJ 1061青蛙的约会 (扩展欧几里得算法)
青蛙的约会 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件很重要的事情,既没有问 ...
- 数论:扩展欧几里德(洛谷P1516 青蛙的约会)
欧几里德 基本思想:gcd(q,r)=gcd(r,q%r); 证明,设q.r的最大公因数为a,则q=xa,r=ya,xy互质 不妨设x>y(显然如果小于会在一次gcd运算后交换) 则q%r=(x ...
- 1477: 青蛙的约会
1477: 青蛙的约会 Time Limit: 2 Sec Memory Limit: 64 MB Submit: 261 Solved: 164 [Submit][Status][Discuss ...
- [BZOJ1477] 青蛙的约会|扩展欧几里得算法
1477: 青蛙的约会 Time Limit: 2 Sec Memory Limit: 64 MB Submit: 306 Solved: 192 [Submit][Status][Discuss ...
- POJ1061 青蛙的约会【扩展欧几里得算法】
青蛙的约会 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 126746 Accepted: 27392 Descript ...
- 1010 -- 青蛙的约会
青蛙的约会 Time Limit:1000MS Memory Limit:65536K Total Submit:181 Accepted:44 Description Description 两只 ...
最新文章
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- Notepad++远程连接Linux系统
- __attribute__ 之weak,alias属性
- Python 超简单一键美化你的文章
- Android中Bitmap和Drawable详解
- 查看postgresql 磁盘占用_一个能融会贯通PostgreSQL监控的人,大概率是高手
- Ros使用自定义数据通讯无法收到消息的分析和解决
- 数据库入门-pymysql模块的使用
- linux读usb转ttl串口数据,ubuntu16.04使用USB转TTL(ch340)串口转usb调试过程
- C#操作Access数据库(查询,更新,插入)
- UTF-8转GBK(GBK转UTF-8)
- 一文读懂生成对抗网络(GANs)【下载PDF | 长文】
- 电阻为何是标准的及各精度的标准阻值表
- Hibernate 参数查询
- 史上最牛总结!电源完整性设计请看这一篇
- 2020年郑州大学计算机录取分数线,2020年郑州大学各省各专业录取分数线
- # 免费短信测试服务-容联云使用
- Docker--网络模式
- 毕业设计 单片机森林远程智能火灾监控系统
- 【Error】 Linux系统“检测到系统程序错误”