F: Fabulous Race Between Tortoise And Rabbit 扩展欧几里得
http://oj.jxust.edu.cn/contest/Problem?id=1561&pid=5
题目描述
经历了上次的惨败,兔子一直心怀不满,又策划了一场比赛,但这次不再是简单的跑步比赛了,他们将在一个神奇的场地进行一次奇妙的比赛:
这个场地是线性的。它拥有一种神奇的功能,表面看起来它只有L米长,其实是无限的!——当你跑到尽头再往前行进时你会发现,你将从另一端跑出来!
兔子制定的游戏规则很简单:正方向为从右往左,兔子和乌龟同时在不同位置开始朝正方向跑,如果兔子在某一时刻与乌龟相遇(在同一个位置)那么乌龟就输,比赛结束。
乌龟沉思了一会儿,要求增加规则:即兔子和乌龟的速度在整个比赛过程中必须都是不变的。
懒惰又自大的兔子以为这次无论如何都不会输掉比赛,一心只想快点赢,想都没想随口就答应了。
现在对于给定的场地长L,兔子和乌龟的位置x和y,以及兔子和乌龟的速度v1,v2。要你判断兔子是不是会赢呢,如果兔子赢得比赛,就输出“win!”和比赛进行的时间t,如果兔子输掉了比赛,就对它发出嘲讽,输出“lueluelue”
输入
输入包括5个整数x1,y1,v1,v2,L
其中x1≠y1,x1≤2∗109,y1≤2∗109
0<v1,v2≤2∗109,0<L≤2∗109
输出
如果兔子赢得比赛,就在一行输出“win!”,下一行输出比赛持续的时间t
。(t为整数)
如果兔子输掉比赛(即两者永远碰不到)就输出 “lueluelue” 对其嘲讽。
样例输入
2 3 4 5 6
样例输出
win!
5
#include<iostream>
#include<string.h>
#include<math.h>
#define max 0x3f3f3f3f
#define ll long long
using namespace std;
ll x,y,r,s;
void exgcd(ll a, ll b, ll &x, ll &y) //拓展欧几里得算法
{
if(!b)
x = , y = ;
else
{
exgcd(b, a % b, y, x);
y -= x * (a / b);
}
} ll gcd(ll a,ll b)
{
return b==?a:gcd(b,a%b);
}
void TY(ll a,ll b,ll c)
{
r=gcd(a,b);
s=b/r;
exgcd(a,b,x,y);//得到x0
x=x*c/r; //得到x1
x=(x%s+s)%s; //得到最小正整数解
}
int main()
{
ll A,B,a,b,L;
cin>>A>>B>>a>>b>>L;
ll aa=b-a,bb=L,cc=A-B;
if(aa<)
{
aa=-*aa;
cc=-*cc;
//bb=-1*bb;
}
r=gcd(aa,bb);
if(cc%r!=)
printf("lueluelue\n");
else
{
printf("win!\n");
TY(aa,bb,cc);
printf("%lld\n",x);
}
return ; }
F: Fabulous Race Between Tortoise And Rabbit 扩展欧几里得的更多相关文章
- SGU 140 扩展欧几里得
题目大意: 给定序列a[] , p , b 希望找到一个序列 x[] , 使a1*x1 + a2*x2 + ... + an*xn = b (mod p) 这里很容易写成 a1*x1 + a2*x2 ...
- 【64测试20161112】【Catalan数】【数论】【扩展欧几里得】【逆】
Problem: n个人(偶数)排队,排两行,每一行的身高依次递增,且第二行的人的身高大于对应的第一行的人,问有多少种方案.mod 1e9+9 Solution: 这道题由1,2,5,14 应该想到C ...
- URAL1204. Idempotents(扩展欧几里得)
1204 大体推推 会出来这个式子 x(x-1) = k*n;n = p*q ;x(x-1)%(p*q)==0; 因为p,q都为素数 那也就是说x和x-1中必定包含这两个数 而且一个里面只能有一个 不 ...
- 【扩展欧几里得】BAPC2014 I Interesting Integers (Codeforces GYM 100526)
题目链接: http://codeforces.com/gym/100526 http://acm.hunnu.edu.cn/online/?action=problem&type=show& ...
- 例10-2 uva12169(扩展欧几里得)
题意:已知xi=(a*xi-1+b) mod 10001,且告诉你x1,x3.........x2*t-1,让你求出其偶数列 思路: 枚举a,然后通过x1,x3求出b,再验证是否合适 1.设a, b, ...
- HDU1211 密文解锁 【扩展欧几里得】【逆元】
<题目链接> <转载于 >>> > 题目大意: RSA是个很强大的加密数据的工具,对RSA系统的描述如下: 选择两个大素数p.q,计算n = p * q,F( ...
- BZOJ 1965 洗牌(扩展欧几里得)
容易发现,对于牌堆里第x张牌,在一次洗牌后会变成2*x%(n+1)的位置. 于是问题就变成了求x*2^m%(n+1)=L,x在[1,n]范围内的解. 显然可以用扩展欧几里得求出. # include ...
- interesting Integers(数学暴力||数论扩展欧几里得)
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAwwAAAHwCAIAAACE0n9nAAAgAElEQVR4nOydfUBT1f/Hbw9202m0r8
- JZYZOJ1372 [noi2002]荒岛野人 扩展欧几里得
http://172.20.6.3/Problem_Show.asp?id=1372 想法其实很好想,但是我扩展欧几里得还是用得不熟练,几乎是硬套模板,大概因为今天一个下午状态都不大好.扩展欧几里得算 ...
随机推荐
- js下false情况
//为false的情况 false null NaN undefined "" 0
- 不要在mutation回调函数之外,修改vuex仓库里属性的状态
[vuex] do not mutate vuex store state outside mutation handlers. import * as types from './mutation- ...
- MockMVC - 基于RESTful风格的Springboot,SpringMVC的测试
MockMVC - 基于RESTful风格的SpringMVC的测试 对于前后端分离的项目而言,无法直接从前端静态代码中测试接口的正确性,因此可以通过MockMVC来模拟HTTP请求.基于RESTfu ...
- 操作系统OS - 阻塞(Blocking)非阻塞(Non-Blocking)与同步(Synchronous)异步(Asynchronous)
参考: http://blog.jobbole.com/103290/ https://www.zhihu.com/question/19732473/answer/23434554 http://b ...
- CentOS7安装jenkis
注意:终止运行Ctrl+c , 退回到shell命令Ctrl+d 一.先检查是否有java [root@huangyh huangyh]# rpm -qa |grep java 或 java 因为C ...
- Educational Codeforces Round 82 C. Perfect Keyboard
Polycarp wants to assemble his own keyboard. Layouts with multiple rows are too complicated for him ...
- Python数据分析之Numpy操作大全
从头到尾都是手码的,文中的所有示例也都是在Pycharm中运行过的,自己整理笔记的最大好处在于可以按照自己的思路来构建矿建,等到将来在需要的时候能够以最快的速度看懂并应用=_= 注:为方便表述,本章设 ...
- MySQL高可用之MHA配置
本文简单介绍了MySQL的高可用实现方式之一的MHA MHA:Master High Availability,对主节点进行监控,可实现自动故障转移至其它从节点:通过提升某一从节点为新的主节点,基于主 ...
- 【译】高级T-SQL进阶系列 (二)【下篇】:使用 APPLY操作符
[译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正] 原文链接:传送门. 使用OUTER APPLY 操作符 OUTER APPLY操作符工作起来和CROSS APPLY比较类似.唯一的 ...
- transform 的旋转 ,3d效果,要添加3d效果的父级加上景深perspective。 3d效果的容器加上 transform-style:preserve-3d。
该技术用于创建一个多维的数据,在这个实例中使用了两个元素用于正面和反面.前面用来放置产品图片,底部用来放置产品信息.默认情况下产品信息隐藏起来,同时鼠标悬停在产品图片上时,隐藏在底部的产品信息在X轴放 ...