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 想法其实很好想,但是我扩展欧几里得还是用得不熟练,几乎是硬套模板,大概因为今天一个下午状态都不大好.扩展欧几里得算 ...
随机推荐
- CSS制作二级菜单时,二级菜单与一级菜单不对齐
效果如图: 部分代码如图: <li><a href="#" target="_blank">关于我们</a> <ul& ...
- 计算机二级C语言选择题错题知识点记录。
计算机二级C语言选择题错题知识点记录. 1,在数据流图中,用标有名字的箭头表示数据流.在程序流程图中,用标有名字的箭头表示控制流. 2,结构化程序设计的基本原则:自顶向下,逐步求精,模块化,限制使用g ...
- Centos610 Oracle 监听文件配置参考
lister.ora配置参考 # listener.ora Network Configuration File: /home/oracle/app/oracle/product//dbhome_1/ ...
- winform Anchor和Dock属性
在设计窗体时,这两个属性特别有用,如果用户认为改变窗口的大小并不容易,应确保窗口看起来不显得很乱,并编写许多代码行来达到这个目的,许多程序解决这个问题是地,都是禁止给窗口重新设置大小,这显然是解决问题 ...
- How2j学习java-2、用命令行中编写第一个 JAVA 程序
真正在工作中开发 java 应用都会使用eclipse,myeclipse, IntelliJ等等 使用最原始的命令行方式来执行Hello World 1.准备项目目录 在e: 创建一个project ...
- 增加phpmyadmin导入文件上限
一.修改php配置 修改php配置文件,php.ini upload_max_filesize = 100M post_max_size = 100M 一般修改这2个就行了,然后重启wampserve ...
- Spring Boot 开发 WebService 服务
WebService 虽然现在大部分互联网企业不太提倡使用,但在以第三方接口为主导的市场,对方来什么接口你还得用什么接口,不可能把接口重写了.例如大部分传统的大型企业都在用 WebService,并且 ...
- Vue项目——去哪网(首页部分)
业务逻辑 通过gitee创立各个分支,比如swiper,header,recommende等分支,其实就是整个页面上的每个模块.模块化是公司级别项目开发的基准,每个人在各自的分支上进行代码的编写,而对 ...
- opencv人脸识别提取手机相册内人物充当数据集,身份识别学习(草稿)
未写完 采用C++,opencv+opencv contrib 4.1.0 对手机相册内人物opencv人脸识别,身份识别学习 最近事情多,介绍就先不介绍了 photocut.c #include & ...
- Style 继承
在应用某个主题后,想在此基础上自定义新的样式,可以使用如下方式继承样式. <Style x:Key="ListViewItemStyle" TargetType=" ...