J - 青蛙的约会(扩展欧几里得)

https://vjudge.net/contest/218366#problem/J

第一步追及公式要写对:y+nk-(x+mk)=pL => (n-m)k+lp=x-y

可以看出扩展欧几里得原型,这里注意扩展欧几里得求出的是任意解,非最优,要推出最小解k。

(n-m)x+ly=gcd => (n-m)(x*(x-y)/gcd) + l*y*(x-y)/gcd = x-y

则k = x*(x-y)/gcd(某一解非最小),由于k每次可转移t = l/gcd

最小解为(k%t+t)%t。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 #include<cstdlib>
 6 #include<cmath>
 7 #include<vector>
 8 #include<stack>
 9 #include<queue>
10 #define lson l, m, rt<<1
11 #define rson m+1, r, rt<<1|1
12 #define IO ios::sync_with_stdio(false);cin.tie(0);
13 #define INF 0x3f3f3f3f
14 #define MAXN 500010
15 const int MOD=1e9+7;
16 typedef long long ll;
17 using namespace std;
18 ll ext_gcd(ll a, ll b, ll &x, ll &y)
19 {
20     if(b == 0){
21         x = 1;
22         y = 0;
23         return a;
24     }
25     ll r = ext_gcd(b, a%b, x, y);
26     ll t = x;
27     x = y;
28     y = t-(a/b)*y;
29     return r;
30 }
31 int main()
32 {
33     ll n, m, x, y, l, k, p;
34     cin >> x >> y >> m >> n >> l;
35     ll r = ext_gcd(n-m, l, k, p);//k和p为任意解,非最优 
36     if((x-y)%r!=0){
37         cout << "Impossible" << endl;
38     }
39     else{
40         ll t = l/r;//k每次转移量 
41         ll ans = k*(x-y)/r;//从扩展欧几里得标准公式转到我们所列公式求得的k值
42         cout << (ans%t+t)%t << endl;
43     }
44     return 0;
45 }

 

转载于:https://www.cnblogs.com/Surprisezang/p/8733200.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/280683.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# 简单方式解压Zip文件/使用VS2019自带功能

一、目的、构想 1.直接解压zip文档。 2.网上资料不少需要外部dll。 3. 找到可以不需要外部dll方法&#xff0c;分享。 二、code实现 using System.IO.Compression;string filePath "c:\Server\fileList"; string zipPath "C:\Server\Download\Auto.zip&quo…

在 Docker 中使用 flannel - 每天5分钟玩转 Docker 容器技术(60)

上一节我们安装和配置了 flannel&#xff0c;本节在 Docker 中使用 flannel。配置 Docker 连接 flannel编辑 host1 的 Docker 配置文件 /etc/systemd/system/docker.service&#xff0c;设置 --bip 和 --mtu。这两个参数的值必须与 /run/flannel/subnet.env 中 FLANNEL_SUBNET …

使用.NET7和C#11打造最快的序列化程序-以MemoryPack为例

译者注本文是一篇不可多得的好文&#xff0c;MemoryPack 的作者 neuecc 大佬通过本文解释了他是如何将序列化程序性能提升到极致的&#xff1b;其中从很多方面(可变长度、字符串、集合等)解释了一些性能优化的技巧&#xff0c;值得每一个开发人员学习&#xff0c;特别是框架的开…

永不丢失照片:防弹照片备份的完整指南

There’s nothing as precious and irreplaceable as your personal photos and, with a little forethought and planning, there’s no reason to ever feel the heartbreak of losing even a single one of them to theft, broken devices, or disaster. 没有比您的个人照片…

C# 检查当前系统已安装的程序app/两种方法检测

一、目的、构思 1.检测当前系统有没有安装某个程序&#xff0c;如果没有就重新安装。 2.在网上找到了两种方法&#xff0c;可惜都找不到需要检测的app。 二、code实现 1.查找注册列表方式。要在winform的project使用&#xff0c;在console project 貌似找不到Microsoft.Win3…

Integer源码解析

版权声明&#xff1a;本文为博主原创文章&#xff0c;未经博主允许不得转载。 https://blog.csdn.net/wangyangzhizhou/article/details/77196626 概况 Java的Integer类主要的作用就是对基本类型int进行封装&#xff0c;提供了一些处理int类型的方法&#xff0c;比如int到Strin…

MySQL InnoDB存储引擎

呵呵哒。。。 MySQL体系结构和存储引擎 首先要搞懂的是什么是数据库&#xff0c;什么是数据库实例。 数据库&#xff1a;物理操作系统文件或其他形式文件类型的集合。 实例&#xff1a;MySQL数据库由后台线程以及一个共享内存区组成&#xff0c;实例才是真正对数据库进行操作的…

Blazor学习之旅 (8) MudBlazor组件库介绍

【Blazor】| 总结/Edison Zhou大家好&#xff0c;我是Edison。为了实现一个Web应用系统&#xff0c;需要有个看起来不丑的UI&#xff0c;而对于.NET程序员来说要做全栈开发还是有点难&#xff0c;而本篇介绍的这个UI组件库正好可以帮助我们解决这个问题&#xff01;MudBlaozr是…

棉花糖多少钱_如何在6.0棉花糖及更高版本中访问Android的正在运行的应用程序列表...

棉花糖多少钱In Android 5.x and below, accessing your list of running apps was simple—you’d jump into Settings > Apps > Running. Easy! In Android 6.0, however, Google moved this setting. It’s still not super difficult to find, but it’s a little tr…

IE不能直接顯示PDF的原因分析和解決方法

>>>>>問題<<<<<因為有系統用iframe顯示PDF&#xff0c;但PDF有時卻并不能順利地在流覽器中顯示&#xff0c;而是跳出下載對話框&#xff0c;要求下載&#xff0c;給user帶來很多困擾&#xff0c;也給我們系統維護人員帶來了麻煩&#xff0c;用了…

C# 程序图标设置/winform 图标

一、目的、实际情况 1.编写一个winform 程序&#xff0c;发现有一个图标非常有意义。区分其他程序&#xff0c;以及感觉在做产品而不是写代码。 2.添加图标图片发现&#xff0c;需要用ico格式。在线转换&#xff08;某度搜索&#xff09;还是不靠谱。要微信登陆&#xff0c;登…

数字化转型,究竟在“转”什么?

这是头哥侃码的第265篇原创「头哥唠B唠」这个栏目已经持续了几个月了&#xff0c;没想到还在继续进行&#xff0c;并收获了很多朋友们的喜爱。非常感谢大家的支持&#xff01;在上次的直播中&#xff0c;我找来了我的老熟人们。一个是右军老师&#xff0c;之前 APISIX 的很多内…

C++ Primer 第Ⅲ部分笔记——类设计者的工具

1.对象移动 1.1右值引用 右值引用区别于普通引用&#xff0c;用两个&表示 返回左值引用的函数&#xff0c;连同赋值、下标、解引用和前置递增递减运算符返回左值 返回非引用的函数&#xff0c;连同算术、关系、位以及后置递增递减运算符都生成右值 我们不能将左值引用绑定到…

Crash 的文明世界

题目描述 给一棵树&#xff0c;求以每个点为根时下列式子的值。 题解 当k1时这就是一个经典的换根dp问题。 所以这道题还是要用换根dp解决。 部分分做法&#xff1a; 考虑转移时是这样的一个形式(图是抄的)。 用二项式定理展开就可以nk2做了。 观察到结果是一个xk的形式。 然后…

wampServer配置WWW根目录遇到的坑

直接在官网下载之后开始安装&#xff0c;一切正常 打开使用&#xff0c;一切正常 设置WWW目录。坑了一波 按照的都是百度上的教程&#xff0c;设置httpd.conf 这里配置之后网页访问127.0.0.1 还是localhost都还是原始的www目录 后来 我发现了这里 是配置虚拟URL的地方。以上是正…

windows安装程序创建_如何在Windows上创建已安装程序的列表

windows安装程序创建Reinstalling Windows is a good way to fix serious problems with your computer, or just to get a fresh slate. But before you reinstall Windows, you should make a list of programs you currently have installed on your PC so you know what yo…

实现一个更新所有 dotnet tool 的 dotnet tool

实现一个更新所有 dotnet tool 的 dotnet toolIntrodotnet tool 是从 .NET Core 2.1 开始支持的命令行工具&#xff0c;在使用 dotnet tool 比较多了的时候&#xff0c;想要更新所有的 dotnet tool 就比较麻烦&#xff0c;而目前 .NET SDK 还不支持&#xff0c;也有一些人希望能…

C# 普通权限运行程序\非管理员运行\降低权限运行

一、目的与实际 1.VS设置管理员权限运行程序后&#xff0c;发现调用powershell命令或程序需要普通权限即可&#xff0c;Administrator权限反而错。 2.网上搜索关键字&#xff0c;大部分都是怎么使用管理员权限运行。 3.bing搜索意外发现有相关资料&#xff0c;记录分享。 二…

am335x PDK3.0 设置为单网口配置记录

原来的配置是双网口的&#xff0c;现在要配置为单网口。一直以为这个配置是在 make menuconfig 里面&#xff0c; 没想到是在设备树里面。修改设备树// vim arch/arm/boot/dts/am335x-sbc7109.dts722 &mac {723 pinctrl-names "default", "sleep"…

[AHOI2009]飞行棋 BZOJ1800

题目描述 给出圆周上的若干个点&#xff0c;已知点与点之间的弧长&#xff0c;其值均为正整数&#xff0c;并依圆周顺序排列。 请找出这些点中有没有可以围成矩形的&#xff0c;并希望在最短时间内找出所有不重复矩形。 输入输出格式 输入格式&#xff1a;第一行为正整数N&…