牛客练习赛111 D青蛙兔子的约会

news2024/11/21 0:37:18

题目链接
在这里插入图片描述
示例1
输入
3
3 4 10 1 2
2 4 5 1 1
3 5 11 1 1
输出
YES
NO
NO
说明

第一问,青蛙晚上向右跳1次,白天无法与兔子相遇。青蛙向右跳2次,也就是2a=6的距离,白天兔子向左跳1次,可以相遇。所以在跳[1,2]次中,存在青蛙和兔子可以相遇。
第二问,青蛙晚上向右跳1次,然后无论白天兔子怎么跳,都无法和青蛙相遇。

解题思路:

青蛙白天休息,晚上行动,兔子相反。
题目给出了青蛙移动的限制,但兔子没有移动的限制
所有可以得出公式 :存在x,y是整数 有 ax = n-by
公式解释,因为兔子可以随意跳,那么只需要满足青蛙跳到兔子跳y次能跳到的地方即可(设青蛙跳x次)
公式变形 ax+by = n
由裴蜀定理可知,n一定是gcd(a,b)的倍数,也就是说 gcd(a,b)|n
可以用扩展欧几里得算法得出gcd(a,b)和满足ax+by=gcd(a,b)的x和y
如果记为x’和y’
ax’+by’=gcd(a,b)
如果要满足ax+by=n 需要gcd(a,b)|n. 那么 ax+by=(n/gcd(a,b))(ax’+by’)=n

设gcd(a,b)=d
可得 x=x’*n/d y=y’*n/d
ax+by=n 变成 (n/d)x’a+b(n/d)*y’=d(n/d)
这里还是特解,需要求通解继续变形
ax+by=n 变成 (a/d)x+(b/d)y=n/d 那么gcd(a/d,b/d)=1;
根据扩展欧几里得的一个常用定理来得到通解
设x0=(n/d)x’ ,y0=(n/d)y’
那么x0+b/d * t 和 y0+a/d *t 是ax+by=n 的一个通解
则最小正整数解为:(x’ * (n/d) % (b /d) + (b / d) )% (b / d);
既然最小正整数解出来了,这题就好做了

Heltion的代码

#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
i64 exgcd(i64 a, i64 b, i64 &x, i64 &y) {
    if (not b) {
        return x = 1, y = 0, a;
    }
    i64 d = exgcd(b, a % b, x, y);
    tie(x, y) = make_pair(y, x - a / b * y);
    return d;
}
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int t;
    for (cin >> t; t; t -= 1) {
        i64 a, b, n, l, r, x, y;
        cin >> a >> b >> n >> l >> r;
        i64 d = exgcd(a, b, x, y);
        if (n % d) {
            cout << "NO\n";
        } else {
            b /= d;
            x = (x * (n / d) % b + b) % b;//最小正整数解
            i64 y = l / b * b + x;
            if (y < l) {
                y += b;
            }
            cout << (y <= r ? "YES\n" : "NO\n");
        }
    }
}

解析:

由上述解析可知,如果gcd(a,b)|n不成立,直接no,即n%d!=0

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

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

相关文章

app持续交付实战

app持续交付实战 一、学习目标二、优势三、子任务拆分四、环境依赖1、安卓 SDK2、安卓设备&#xff08;真机 or 模拟器&#xff09;3、Appium 自动化测试4、JDK5、Python3环境6、allure-commandline工具7、allure插件 五、实战任务&#xff1a;串行执行 Jenkins Pipeline 项目1…

Python学习之批量转换图片格式和统一图片尺寸

前言 大家在工作的时候是不是都会接触到很多的图片&#xff0c;为了满足不同的需求&#xff1a; 兼容性&#xff1a;不同设备和应用程序可能支持不同的图片格式。通过转换图片格式&#xff0c;可以确保在各种设备和应用程序中都能够正确地显示图片。 文件大小&#xff1a;不…

基于matlab 从接收脉冲中提取波形参数

一、前言 现代飞机通常随身携带雷达警告接收器 &#xff08;RWR&#xff09;。RWR检测到雷达发射&#xff0c;并在雷达信号照射到飞机上时警告飞行员。RWR不仅可以检测雷达发射&#xff0c;还可以分析截获的信号并编目信号来自哪种雷达。此示例显示了 RWR 如何估计截获脉冲的参…

10倍速度开发贪吃蛇游戏之AI辅助

今天就来聊聊AI代码辅助神器&#xff0c;即便是零基础也能上手&#xff0c;因为实在是太强了&#xff0c;这以后叫程序员们怎么活啊&#xff01;话不多说&#xff0c;直接上神器 我用的是cursor,其实目前AI辅助代码不止cursor&#xff0c;还有微软家的copilot X这个根植于gith…

JVM-01-JVM知识

1-JVM内存模型 Java开发人员一般情况下&#xff0c;使用过程中&#xff0c;不用关注内存的申请和释放&#xff0c;得益于JVM自动内存分配机制&#xff0c;但是其实是个双刃剑&#xff0c;这可以提升Java开发的效率&#xff0c;但是弱化了开发人员内存管理意识&#xff0c;系统容…

四元数快速入门【Quaternion】

四元数&#xff08;Quaternion&#xff09;是用于旋转和拉伸向量的数学运算符。 本文提供了一个概述&#xff0c;以帮助理解在空间导航等应用程序中对四元数的需求。 推荐&#xff1a;用 NSDT场景设计器 快速搭建3D场景。 可以通过多种方式在空间中准确定位、移动和旋转物体。 …

U盘在电脑上读不出来怎么办?详细解决方法在这!

案例&#xff1a;u盘在电脑上读不出来 【不知道为什么&#xff0c;我把u盘插入电脑后电脑完全读不出。我也不知道到底哪里出现了问题&#xff0c;有人可以帮我解答一下吗&#xff1f;】 U盘作为我们生活中经常使用的存储工具&#xff0c;其能帮我们存储大量的文件&#xff0c…

BM54-三数之和

题目 给出一个有n个元素的数组S&#xff0c;S中是否有元素a,b,c满足abc0&#xff1f;找出数组S中所有满足条件的三元组。 数据范围&#xff1a;0≤n≤1000&#xff0c;数组中各个元素值满足 ∣val∣≤100。 空间复杂度&#xff1a;O(n^2)&#xff0c;时间复杂度 O(n^2)。 注…

React 第三方插件 —— Cron 表达式生成器(qnn-react-cron)

qnn-react-cron 可以看做 react-cron-antd 的升级版&#xff08;具体“渊源”可见文档&#xff09;&#xff0c;现有功能如下&#xff1a; &#x1f389; 全面支持 cron&#xff1a;秒、分、时、日、月、周、年 &#x1f389; 日及周条件互斥&#xff0c;自动改变响应值 &…

8年测试开发,写给1-3年功能测试的几点建议,满满硬货指导

从15年毕业到现在也从业八年了&#xff0c;普通本科毕业&#xff0c;现在一家互联网公司担任测试部门总监&#xff0c;摸爬打滚&#xff0c;坑坑洼洼也经历了不少。思绪很久决定还是写下这篇&#xff0c;希望对后进的小伙子少走一点弯路。 很多人把职场想得太美好&#xff0c;其…

学node写接口!!!

fs 可以读取文档 fs.readFild() 用于读取文件 第一个参数 路径 第二个参数 "utf8"(默认值) 第三个参数 函数 function(err , dataStr ){ 第一个参数是错误&#xff0c; 第二个参数是正确的可以拿到读取文件里面的值 } fs.writeFile() 用于创建文件添加内容 …

【LeetCode中等】1419.数青蛙

给你一个字符串 croakOfFrogs&#xff0c;它表示不同青蛙发出的蛙鸣声&#xff08;字符串 “croak” &#xff09;的组合。由于同一时间可以有多只青蛙呱呱作响&#xff0c;所以 croakOfFrogs 中会混合多个 “croak” 。 请你返回模拟字符串中所有蛙鸣所需不同青蛙的最少数目。…

如何根据参考文献查找原文及详细的文献信息

当我们已知参考文献想要查看下载原文以及相关信息时可以用下面的方法&#xff1a; 例如这篇参考文献&#xff1a;Alsamhi S H, Almalki F, Ma O, et al. Predictive estimation of optimal signal strength from drones over IoT frameworks in smart cities[J]. IEEE Transac…

FPGA实现SDI视频解码PCIE传输 提供工程源码和QT上位机源码加技术支持

目录 1、前言2、我已有的SDI编解码方案3、我已有的PCIE方案4、总体设计思路和方案SDI摄像头Gv8601a单端转差GTX解串SDI解码VGA时序恢复YUV转RGB图像缓存PCIE发送通路SDI同步输出通路 5、vivado工程详解6、驱动安装7、QT上位机软件8、上板调试验证SDI同步HDMI输出验证PCIE输出验…

neo4j结合gds实现最短路径算法

背景&#xff1a;Neo4j自带的cypher语句中的 shortestpath allShortestPaths 返回值内容非常有限&#xff0c;不易处理, 在实际生产环境中可用性极低&#xff0c; 且若带where条件查询时&#xff0c;查询效率极低 因此&#xff0c;使用Neo4j自带的插件如apoc来进行最短路径查询…

使用@Autowired、@Qualifier、@Primary注解自动装配组件

1.Autowired、Qualifier、Primary注解 1.1.Autowired注解 Autowired注解可以对类成员变量、方法和构造函数进行标注&#xff0c;完成自动装配的工作。 package org.springframework.beans.factory.annotation;import java.lang.annotation.Documented; import java.lang.ann…

hexo stellar主题添加运行时间-利用不蒜子

在网站的页脚想添加博客运行的时间以及&#xff0c;查了一下资料&#xff0c;根据下面的这个博主的代码进行了修改。 打造一个舒服的写作环境&#xff08;Hexo&#xff09; 下面我们开始修改&#xff1a; stellar/layout/_partial/main/footer.ejs 找到//footer的 这一段 // …

基于logback 实现springboot的日志配置

目录 一、前言 二、使用详解 2.1、打印到文件中 2.2、打印级别控制 2.3、logback 详细配置 2.4、logback 配置文件的组成 2.4.1、<root>标签 2.4.2、<contextName>标签 2.4.3、<property>标签 2.4.4、<appender>标签 2.4.5、<logger&g…

Mysql索引(2):索引结构

1 概述 MySQL的索引是在存储引擎层实现的&#xff0c;不同的存储引擎有不同的索引结构&#xff0c;主要包含以下几种&#xff1a; 索引结构描述BTree索最常见的索引类型&#xff0c;大部分引擎都支持 B 树索引 Hash索引 底层数据结构是用哈希表实现的, 只有精确匹配索引列的…

ShardingProxy分库分表实战

目录 ShardingProxy简述 快速使用 ShardingProxy部署 ShardingProxy使用 ShardingProxy的服务治理 Shardingproxy的其他功能 ShardingProxy的SPI扩展 ShardingSphere总结 ShardingProxy简述 ShardingProxy的功能同样是分库分表&#xff0c;但是他是一个独立部署的服务…