链接:https://ac.nowcoder.com/acm/contest/635/H
来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述

艾兰岛和沃夫岛的时间算法很不一样,它们都拥有它们自己的魔法大时钟。以我们的时间来看艾兰岛的大时钟起鸣在b, b+a, b+2a, b+3a,… ,(a,b均为正整数)并且沃夫岛的大时钟起鸣在d, d+c, d+2c, d+3c,….(c,d均为正整数)因为计时的方法不同,两边经常打仗,但可能有某些时间点两边的大时钟同时起鸣。我们称这样的时间点为和平点。求第一个和平点。(如果没有这样的时间点,输出-1)

输入描述:

第一行输入两个整数a,b ( 1< a,b < 5*108)

第二行输入两个整数c,d ( 1< c,d < 5*108)

输出描述:

第一个和平点所表示的时间(如果没有这样的时间点,输出-1)
示例1

输入

复制

20 2
9 19

输出

复制

82

示例2

输入

复制

2 1
16 12

输出

复制

-1

解题思路:由题目我们可以很容易列出方程b+ax=d+cy,令b<d,如果b>d我们就交换(a,c),(b,d),这样的话我们就只需要求出y的最小正整数解,然后d+cy必定是答案,我们把式子转化为ax-cy=d-b,然后再转化为ax+cy=d-b,改成求y的最大非正整数解,答案也随即变成d-cy了。代码:
#include<iostream>
using namespace std;
typedef long long ll;
ll a,b,c,d;
void exgcd(ll a,ll b,ll &x,ll &y,ll &c){if(!b){x=1,y=0,c=a;}else{exgcd(b,a%b,y,x,c);y-=a/b*x;}
}
int main(){cin>>a>>b>>c>>d;if(b>d){swap(b,d);swap(a,c);}ll x,y,gcd;exgcd(a,c,x,y,gcd);if((d-b)%gcd){puts("-1");return 0;}x*=(d-b)/gcd; y*=(d-b)/gcd;y%=(a/gcd);while(y>0) y-=a/gcd;cout<<d-c*y<<endl;return 0;
}

转载于:https://www.cnblogs.com/zjl192628928/p/10776689.html

江西财经大学第二届程序设计竞赛同步赛 H大时钟 (扩展欧几里得)相关推荐

  1. 江西财经大学第二届程序设计竞赛同步赛----E-是不是复读机

    首先发出题目链接: 链接:https://ac.nowcoder.com/acm/contest/635/E 来源:牛客网 题目如下: 看完题目之后就有两个问题摆在面前: (1)题目输入的是一串英文, ...

  2. (江西财经大学第二届程序设计竞赛同步赛)E-是不是复读机

    E-是不是复读机 题目描述: 在复读纪元2140年,复读机(们)已经放弃了如下所示的低级复读方式: "哟,小伙汁,想不到你也是个复读机" "哟,小伙汁,想不到你也是个复读 ...

  3. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛) 题解

    "科林明伦杯"哈尔滨理工大学第十届程序设计竞赛(同步赛) 题解 萌新又来写题解啦 原题链接 B 减成一 题意:存在n个数,每次操作可以任选一个区间使得区间内的所有数字减一.问最少多 ...

  4. 南昌大学航天杯第二届程序设计竞赛校赛网络同步赛题解

    A,C,I签到题,只搞了8题,还一题是神仙做的,我不会 链接:https://www.nowcoder.com/acm/contest/122/B 来源:牛客网 取石子 时间限制:C/C++ 1秒,其 ...

  5. 南昌大学航天杯第二届程序设计竞赛校赛网络同步赛 - 题解

    A - ID and password 题目描述 Users prefer simple passwords that are easy to remember, but such passwords ...

  6. 南昌大学航天杯第二届程序设计竞赛校赛网络同步赛 部分题解

    A-ID and password 签到题. #include <iostream> #include <cstdio> #include <bits/stdc++.h& ...

  7. 南昌大学航天杯第二届程序设计竞赛校赛网络同步赛B 取石子(博弈SG函数模板)

    题目链接:取石子 链接:https://www.nowcoder.com/acm/contest/122/B 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65 ...

  8. 江西财经大学第一届程序设计竞赛 G题小Q的口袋校园

    题目链接:https://www.nowcoder.com/acm/contest/115/G 解题思路:题解就一份代码,贪心的思想.先按开始时间进行排序. 然后不断贪心获得happy[ j ]的最大 ...

  9. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛(同步赛)---全题目+题解

    文章目录 A.点对最大值 B.减成一 C.面积 D.扔硬币 E.赛马 F.三角形 G.养花 H.直线 I.字典序 J.最大值 A.点对最大值 链接:https://ac.nowcoder.com/ac ...

最新文章

  1. linux resin mysql_Linux下Resin JSP MySQL的安装和配置-2
  2. 赞!超炫的页面切换动画效果【附源码下载】
  3. dubbo管理控制台安装和使用
  4. python内置函数用来返回数值型序列中所有元素之和_语句x = 3==3, 5执行结束后,变量x的值为_学小易找答案...
  5. java Spring Boot中使用Swagger2构建API文档
  6. excel字符串反转
  7. 2个 string 日期比较
  8. mysql 交集_面试官:来说说MySQL的常见优化方案……
  9. 如何才能做到网站高并发访问?
  10. Filezilla client站点出现中文乱码的解决办法
  11. Ubuntu16.04安装Meshlab
  12. 51、AVR、PIC、MSP430、ARM五大单片机全解析
  13. 张朝阳5G寻路与搜狐奇兵
  14. 业务分析师Business Analysist(BA)的职业发展之路
  15. 一亿条数据的排序处理
  16. 计算机组成CPU最佳配置,计算机组成原理--CPU
  17. 【leetcode】714. 买卖股票的最佳时机含手续费
  18. 认真学习MySQL中的角色权限控制
  19. 转载 Lua xpcall
  20. 13场院士报告推动2022中国种子大会 国稻种芯百团计划行动

热门文章

  1. Android uevent
  2. STM32F7xx —— CAN通信
  3. 51单片机——SPI
  4. 天池 在线编程 所有子数组之和(排列组合)
  5. LeetCode 1563. 石子游戏 V(DP)
  6. [scikit-learn 机器学习] 8. 非线性分类和决策树
  7. LeetCode 1466. 重新规划路线(DFS/BFS)
  8. LeetCode 1. 两数之和(哈希)
  9. java 拦截器_Spring的春天来啦——百战Java课程更新(2019.09.06)
  10. tc溜溜865手机投屏卡_溜溜 TC Games 官网_专题