poj 1061 青蛙的约会

简介:

这题的关键就是找方程:
要想青蛙能碰面,就满足方程:
(x+m*t) - (y+n*t) = p*l;
t:跳的次数
p:两只青蛙相差的圈数
l:纬度线的长度
将上述方程整理得:
(n-m)*t + p*l = x-y;
令a=n-m,b=l,c=gcd(a,b),d=x-y;
所以就有:
a*t + b*p = d;
就是求解t的最小正整数;

#include <iostream>
#include <cstdio>
using namespace std;
typedef long long LL;
void exgcd(LL a,LL b,LL &x,LL &y)//扩展欧几里得算法
{
    if(b==0)
    {
        x=1;
        y=0;
        return;
    }
    exgcd(b,a%b,x,y);
    LL tmp=x;//关键
    x=y;
    y=tmp-(a/b)*y;
}
LL gcd(LL m,LL n)//求最大公约数
{
    if(n==0)
        return m;
    return gcd(n,m%n);
}
int main()
{
    LL x,y,m,n,l,a,b,c,d,x0,y0,flag;
    while(cin>>x>>y>>m>>n>>l)
    {
        flag=0;//记一下是不是有解
        a=n-m,b=l;
        c=gcd(a,b),d=x-y;
        if(d%c!=0)
            flag=1;
        if(flag)
            puts("Impossible");
        else
        {
          a/=c;
          b/=c;
          d/=c;
          exgcd(a,b,x0,y0);//x0与y0就是上述解题思路的t和p
          x0*=d;
          x0=(x0%b+b)%b;//最小正整数
          cout<<x0<<endl;
        }
    }
    return 0;
}
目录
相关文章
|
Java Shell 调度
ps -ef | grep java 输出的具体含义是什么?
uid        pid    ppid   # PID 这个程序的 ID 下面的 PPID 则是父程序的 ID;   PS是LINUX下最常用的也是非常强大的进程查看命令 常见的使用方法是检查一个进程是否存在: //以下这条命令是检查java 进程是否存在.ps -ef |grep java 1. ps简介 前面介绍的两个命令都是用于查看当前系统用户的情况,下面就来看看进程的情况,这也是本章的主题。
2726 0
|
8月前
|
机器学习/深度学习 人工智能 编解码
告别潜在空间的黑箱操作,直接在原始像素空间建模!PixelFlow:港大团队开源像素级文生图模型
香港大学与Adobe联合研发的PixelFlow模型,通过流匹配和多尺度生成技术实现像素级图像生成,在256×256分辨率任务中取得1.98的FID分数,支持端到端训练并突破传统模型对预训练VAE的依赖。
394 36
告别潜在空间的黑箱操作,直接在原始像素空间建模!PixelFlow:港大团队开源像素级文生图模型
|
9月前
|
存储 监控 BI
评测:大模型时代的智能BI—Quick BI
作为一位数据平台开发工程师,我近期体验了阿里云Quick BI的深度功能。以下从技术视角总结:1. 数据集成支持本地文件快速建模,但大文件上传和多表关联有待优化;2. 开放API便于报表嵌入,建议增加频次限制与实时推送能力;3. 计算引擎性能良好,复杂查询时需优化分布式调度;4. 资源监控模块实用,但缺乏预警机制;5. 安全体系完善,建议增强自动权限管理和KMS集成。总体而言,Quick BI是一款适合中大型企业的智能BI工具,具备强大API生态和多租户设计。
334 1
|
9月前
|
设计模式 网络协议 Java
04.里式替换原则介绍
里式替换原则(LSP)是面向对象设计的重要原则之一,确保子类可以无缝替换父类而不破坏程序功能。本文详细介绍了LSP的定义、背景、理解方法及应用场景,通过电商支付和鸟类飞行案例展示了如何遵循LSP,并分析了其优缺点。LSP强调子类应保持父类的行为一致性,有助于提高代码的可扩展性、可维护性和可重用性,但也可能导致过度设计。最后,对比了LSP与多态的区别,明确了LSP作为设计原则的重要性。
356 4
|
存储 索引
数组的特点
数组是一种线性数据结构,用于存储固定大小的顺序集合。每个元素在数组中都有一个唯一的索引,可以快速访问和修改。数组支持随机访问,但插入和删除操作较慢,因为需要移动后续元素。适用于需要频繁读取数据的场景。
|
机器学习/深度学习 人工智能 自然语言处理
探索人工智能前沿:自然语言处理的最新进展
探索人工智能前沿:自然语言处理的最新进展
1057 2
|
安全 编译器 C语言
C语言常量的定义与使用的注意点
在 C 语言中,常量是在程序运行期间值不变的量,通过字面值、`#define` 或 `const` 关键字定义。字面常量直接在代码中表示固定值,如整数 `100`、浮点数 `3.14`、字符 `&#39;A&#39;` 和字符串 `&quot;Hello, World!&quot;`;`#define` 用于定义宏,如 `#define PI 3.14159`;`const` 则定义不可变变量,如 `const int daysInWeek = 7`。常量可用于数组大小、循环边界等场景,并能提升代码的可读性和可维护性。使用时需注意作用域、类型安全和命名,避免直接使用数字(魔法数字)。
|
机器学习/深度学习 Rust 编译器
神秘编程语言 Rust 背后究竟隐藏着怎样的生态宝藏?框架、工具链与社区资源大揭秘!
【8月更文挑战第31天】Rust 语言凭借卓越性能与内存安全性吸引了众多开发者。其生态系统包括多种框架(如 Actix-web、Rocket 和 Warp)、强大的工具链(如包管理器 Cargo 和高效编译器)以及丰富的社区资源。Cargo 简化了项目管理,编译器提供详尽错误信息并支持增量编译,而活跃的社区则为学习与交流提供了广阔平台,涵盖官方文档、博客、论坛及大量 GitHub 开源项目。随着更多开发者的加入,Rust 生态系统将持续繁荣发展。
525 0
|
Java Spring Maven
Spring官网jar包下载方法
Spring官网改版后,很多项目的完整zip包下载链接已经隐掉了,虽然Spring旨在引导大家用更“高大上”的maven方式来管理所依赖的jar包,但是完全没想到中国的国情,在伟大的墙内,直接通过maven下载墙外的东西,要么龟速,要么直接被和谐。
2449 0
|
Web App开发 应用服务中间件 nginx