解题报告:luogu P1516 青蛙的约会
题目链接:P1516 青蛙的约会
考察拓欧与推式子\(qwq\)。
题意翻译?
求满足
\]
的最小整数解\(d\)。
我们设(以下均满足\(n\geqslant m\)):
\]
两式相减,即得:
\]
这样我们就把不确定的\(t\)消掉了!
我们再把它转化成模\(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 青蛙的约会的更多相关文章
- 解题报告:poj1061 青蛙的约会 - 扩展欧几里得算法
青蛙的约会 writer:pprp Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 119716 Accepted: 25238 ...
- POJ 1061 BZOJ 1477 Luogu P1516 青蛙的约会 (扩展欧几里得算法)
手动博客搬家: 本文发表于20180226 23:35:26, 原地址https://blog.csdn.net/suncongbo/article/details/79382991 题目链接: (p ...
- [Luogu P1516]青蛙的约会
按照题意,显然可以列出同余方程,k即为所求天数,再将其化为不定方程 ,那么对这个方程用扩展欧几里德算法即可得出k,q的一组解,但是方程有解的充要条件是(m – n) 和L不同时为零并且x – y是m ...
- luogu P1516 青蛙的约会(线性同余方程扩展欧几里德)
题意 题解 做了这道题,发现扩欧快忘了. 根据题意可以很快地列出线性同余方程. 设跳了k次 x+mkΞy+nk(mod l) (m-n)kΞ-(x-y)(mod l) 然后化一下 (m-n)k+(x- ...
- 洛谷 P1516 青蛙的约会 解题报告
P1516 青蛙的约会 题目描述 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件 ...
- 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 ...
- 洛谷——P1516 青蛙的约会
P1516 青蛙的约会 题目描述 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘记了一件 ...
- P1516 青蛙的约会和P2421 [NOI2002]荒岛野人
洛谷 P1516 青蛙的约会 . 算是手推了一次数论题,以前做的都是看题解,虽然这题很水而且还交了5次才过... 求解方程\(x+am\equiv y+an \pmod l\)中,\(a\)的最小整数 ...
- 【Luogu】P1516青蛙的约会(线性同余方程,扩展欧几里得)
题目链接 定理:对于方程\(ax+by=c\),等价于\(a*x=c(mod b)\),有整数解的充分必要条件是c是gcd(a,b)的整数倍. ——信息学奥赛之数学一本通 避免侵权.哈哈. 两只青蛙跳 ...
随机推荐
- hash路由
class HashRouter{ constructor(){ //用于存储不同hash值对应的回调函数 this.routers = {}; window.addEventListener('ha ...
- border-1px的实现(stylus)如何在移动端设置1px的border
在这里我只介绍下边框的实现: 当样式像素一定时,因手机有320px,640px等.各自的缩放比差异,所以设备显示像素就会有1Npx,2Npx.为保设计稿还原度,解决就是用media + scale. ...
- spring boot整合Thymeleaf
1.引入thymeleaf: <dependency> <groupId>org.springframework.boot</groupId> <artifa ...
- WebRTC之Android客户端
一.WebRTC的Android客户端搭建 1.libjingle_peerconnection_so.so 2.libjingle_peerconnection.jar 3.客户端源码一份(可以在g ...
- sql server alter column identity
上网找 alter column identity 语句,将表中的一个字段调整成自动新增.发现没有. 跟踪了一下sql server 执行这一动作的语句,发现是新建了新表,将字段修改成自动新增,然后将 ...
- ScrollView不设置contentSize属性依然也可以作为底层滚动View(使用masonry设置scrollView的contentSize)
第一步 //下层的scroolView self.baseScrollView = [[UIScrollView alloc] init]; self.baseScrollView.delegate ...
- mysql之魔鬼训练营
普通 + 中等 难度练习题 测试数据: --建表 --学生表 CREATE TABLE `Student`( `s_id` VARCHAR(20), `s_name` VARCHAR(20) NOT ...
- 【转载】CentOS和Ubuntu的区别
CentOS(Community ENTerprise Operating System)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代 ...
- kafka 日志策略
日志查看: usr/local/kafka/kafka_2.11-2.4.0/bin/kafka-run-class.sh kafka.tools.DumpLogSegments --files /t ...
- 【 JdbcUtils 】mysql数据库查询
JdbcUtils package k.util; import java.sql.*; import java.util.ArrayList; import java.util.HashMap; i ...