LCM Walk HDU - 5584(数论+思维)

基于RYU+Mininet的SDN校园网络实战:从零搭建虚拟化实验环境 本文详细介绍了如何利用RYU控制器和Mininet搭建SDN校园网络实验环境,从Ubuntu虚拟机准备到网络拓扑设计,再到关键网络功能实现。通过实战案例展示SDN在校园网络中的应用优势,包括简化配置、提升效率等,为网络工程师和学生提供了一套完整的虚拟化实验方案。 阅读详情

LCM Walk HDU - 5584

A frog has just learned some number theory, and can’t wait to show his ability to his girlfriend.

Now the frog is sitting on a grid map of infinite rows and columns. Rows are numbered 1,2,⋯ from the bottom, so are the columns. At first the frog is sitting at grid (sx,sy), and begins his journey.

To show his girlfriend his talents in math, he uses a special way of jump. If currently the frog is at the grid (x,y), first of all, he will find the minimum z that can be divided by both x and y, and jump exactly z steps to the up, or to the right. So the next possible grid will be (x+z,y), or (x,y+z).

After a finite number of steps (perhaps zero), he finally finishes at grid (ex,ey). However, he is too tired and he forgets the position of his starting grid!

It will be too stupid to check each grid one by one, so please tell the frog the number of possible starting grids that can reach (ex,ey)
!
Input
First line contains an integer T, which indicates the number of test cases.

Every test case contains two integers ex and ey, which is the destination grid.

⋅ 1≤T≤1000.
⋅ 1≤ex,ey≤109
.
Output
For every test case, you should output ” Case #x: y”, where x indicates the case number and counts from 1 and y
is the number of possible starting grids.
Sample Input

3
6 10
6 8
2 8

Sample Output

Case #1: 1
Case #2: 2
Case #3: 3
题意:

给定在某个坐标(x,y)(x,y)的移动规则:

从点(x,y)只能移动到(x+lcm(x,y),y)或(x,y+lcm(x,y))(x,y)只能移动到(x+lcm(x,y),y)或(x,y+lcm(x,y))

给定终点(ex,ey)(ex,ey)问有多少起点能够到达这个终点(坐标大于0)

分析:

根据题意从点

(x,y)→(x,y+lcm(x,y))(x,y)→(x,y+lcm(x,y))

∵lcm(x,y)=xygcd(x,y)∵lcm(x,y)=xygcd(x,y)

设gcd(x,y)=g,则x=m1g,y=m2ggcd(x,y)=g,则x=m1g,y=m2g

∴lcm(x,y)=m1m2g2g=m1m2g∴lcm(x,y)=m1m2g2g=m1m2g

(x,y)→(x,y+lcm(x,y))(x,y)→(x,y+lcm(x,y))

↓↓

(m1g,m2g)→(m1g,m2g+m1m2g)(m1g,m2g)→(m1g,m2g+m1m2g)

↓↓

(m1g,m2g)→(m1g,m2g⋅(1+m1))(m1g,m2g)→(m1g,m2g⋅(1+m1))

∵m1,m2互质,m1,m1+1互质∵m1,m2互质,m1,m1+1互质

∴∴转移到新坐标后,横纵坐标的最大公因数仍然是g

因此我们发现对于给定的终点(ex,ey)(ex,ey),可以到达这个终点的路径上的所有点坐标的横纵坐标最大公因数恒为gg,并且前后必定满足式子

(m1g,m2g)→(m1g,m2g⋅(1+m1))

所以我们只需要根据终点逆推回去就行了,对于到达位置的坐标,上式中纵坐标始终是较大的值,所以每次,我们只需要交换顺序,使得后者始终较大即可

那么什么时候终止呢?

仍然是观察上面前后坐标的关系

如果存在前一个坐标,当前坐标必然满足

(m1g,m2g⋅(1+m1))=(m1g,m2⋅(g+m1g))(m1g,m2g⋅(1+m1))=(m1g,m2⋅(g+m1g))

所以较大坐标内含有因子(g+m1g)(g+m1g),因此我们只需要取模判断一下即可

知道了终点坐标,首先我们可以求出最大公因数g,然后也就求出了m1,有了m1也就可以求出了m2知道了终点坐标,首先我们可以求出最大公因数g,然后也就求出了m1,有了m1也就可以求出了m2

又一个当时没做出来的数论题mlgb

code:

#include <bits/stdc++.h>
using namespace std;
int gcd(int a,int b){
    return b ? gcd(b,a%b) : a;
}
int main(){
    int T,cas = 0;
    scanf("%d",&T);
    int x,y;
    while(T--){
        scanf("%d%d",&x,&y);
        int ans = 1;//终点也算一个
        int m1,m2;
        int g = gcd(x,y);
        if(x > y) swap(x,y);
        while(y % (x + g) == 0){
            ans++;
            x = x;
            y = y / (g + x) * g;
            if(x > y) swap(x,y);
        }
        printf("Case #%d: %d\n",++cas,ans);
    }
    return 0;
}
群晖NAS硬盘挂了别慌!用Ubuntu 18外接USB保姆级数据抢救指南 本文提供群晖NAS硬盘故障时的数据抢救指南,详细介绍了使用Ubuntu 18外接USB硬盘盒的完整流程。从构建救援环境、硬盘识别到数据迁移策略,涵盖关键步骤和实用技巧,帮助用户零成本恢复重要数据。特别适合非RAID配置的单盘故障场景。 阅读详情

相关推荐

ADS新手必看:ICCAP数据导入与导出CSV的完整流程(附常见问题解决)

本文为ADS新手详细讲解了如何将ICCAP测试数据导入ADS进行仿真分析,并导出为通用CSV格式的完整流程。内容涵盖文件格式解析、导入设置、数据验证、处理技巧及常见问题排查,重点解决了数据文件导入过程中的兼容性与单位映射等核心难点,帮助射频工程师高效连接测量与仿真环节。

peace的博客 557

L - LCM Walk HDU - 5584 (数论)

题目链接: L - LCM Walk HDU - 5584 题目大意:首先是T组测试样例,然后给你x和y,这个指的是终点。然后问你有多少个起点能走到这个x和y。每一次走的规则是(m1,m2)到(m1+lcm(m1,m2),m2)或者(m1,m2+lcm(m1,m2))。 具体思路: lcm(m1,m2)=m1*m2/(gcd(m1,m2)).然后m1就能表示成t1*gcd(...

diaomeijiao3430的博客 340

手把手排查IOMMU映射故障:从内核日志到硬件寄存器调试全指南

本文详细解析了IOMMU映射故障的排查方法,从内核日志分析到硬件寄存器调试,提供了一套完整的诊断流程。涵盖AMD和Intel平台的特定调试技巧,包括ATS协商失败、DMA传输错误等常见问题的解决方案,并介绍了高级调试工具链的搭建与性能优化策略。

weixin_42666036的博客 353

HDU-5584-LCM Walk【2015上海赛区】【数论】

HDU-5584-LCM Walk

Linoy 1573

Matlab使用GitHub的踩坑记录(持续更新)

Matlab使用git的踩坑记录前言Matlab设置Git的官方帮助文档系统配置新建Git两种代码管理方式典型源代码管理SVN分布式源代码管理 Git注意:SVN和Git都可以用GitHub创建新的库 前言 作为Git初学者,对Git的代码版本管理非常非常喜欢,给了我极大的安全感。特别是想到之前的几次Matlab、Latex和python的代码莫名其妙被折腾没了又没法找回的悲剧,决定慢慢的走入gi...

voluntry的博客 7296

经典点云配准算法:迭代最近点算法ICP(Iterative Closest Point)

迭代最近点算法,又名为 ICP(Iterative Closest Point)算法。 (1)ICP算法对初始值的依赖比较大,具体的配准过程中,如何选择初始值是一个问题,可以使用轮式里程计、imu预积分或其它先验的配准结果。 (2)ICP迭代次数过多,实际工程中需要考虑到其实时性的优化问题。 (3)迭代终止的阀值的设置也是需要考虑的点,可以考虑自适应阀值的方法。 (4)关于寻找最近点可以使用kdtree进行临近搜索。

qq_35102059的博客 1万+

【数论】hdu5584 LCM walk(数学推导)

题意: 从(x,y)点出发,到(x+z,y)或(x,y+z)z=lcm(x,y);给出终点(a,b),问有多少个可能起点。 题解: 注意到 gcd(x+z,y)==gcd(x,y+z)==gcd(x,y)就不难了。 从起点到终点gcd一定要相同。 设g=gcd(x,y);则x‘=y*g/(x+g)  注意令y>x; 推导过程中要用到lcm(x,y)=x*y/gcd(x,y)

miku23736748的博客 481

智慧杯 考试必备

2019.4. 强密码 描述 我们称一个密码是强密码,当且仅当它满足以下所有条件: 由 8 − 16 个字符组成 至少包含一个大写字母 (A-Z) 至少包含一个小写字母 (a-z) 至少包含一个数字 (0-9) 至少包含一个特殊符号 (! @ #$ % & * _ +) 娇娇发现她现在的密码好像不是强密码,请你帮她计算一下最少添加几个 字符可以变成强密码? 输入 输入仅一行,一个字符串,表示娇娇当前的密码 输出 输出一个数表示答案 如果不需要添加任何字符就已.

Fairy1208的博客 2861

hdu 5584 最小公倍数

hdu 5584 最小公倍数 2015年ACM区域赛(上海)的现场赛题。 难度等级:简单题,数学。 FB(First Blood)时间:18分钟。 铜牌队伍在98分钟左右AC。 排行榜的L题: https://luoyongjun999.github.io/rank.html 能力考核:最小公倍数和最大公约数问题、逻辑推理。 题意: 一只青蛙坐在一个网格图上,行和列都是无限的。行的计数从底部开始1, 2, ⋯,列也是这样。青蛙最初的位置是坐标(sx, sy),旅程开始了。 它使用了一种特别的跳跃方法。如果

TA很酷的博客 901

从Unitree B2W到四足机器人:用Isaac Lab构建强化学习奖励函数的5个实战技巧

本文分享了在Isaac Lab仿真环境中,为Unitree B2W等四足机器人设计强化学习奖励函数的5个核心实战技巧。内容涵盖奖励函数的结构化组合、轮腿混合机器人的适配策略、课程学习的动态调整、域随机化增强鲁棒性以及高效的调试可视化方法,旨在帮助开发者构建更稳定、高效的机器人运动策略。

lg888的博客 1065

【DaVinci Developer专题】-23-IDT高阶应用:结构体类型的数组

共8页 目录 1 创建一个Record IDT 2 创建一个Array IDT 3 创建一个S/R Port Interface 4 创建一个Constant 5 导入CFG生成代码的总结 6 结尾 <--返回「实战篇」博文-总目录--> <--返回「Autosar从入门到精通-实战篇」专栏主页--> 关键字: 缩略语/术语 含义 DEV DaVinci Developer .

「汽车电子助手」的博客 1667

LCM Walk (HDU - 5584,简单数论)

一.题目链接 HDU-5584 二.题目大意: frog 从 (sx, sy) 出发. 每次可以从 (x, y) 走到 (x + lcm(x, y), y) 或 (x, y + lcm(x, y)). 现给出终点 (ex, ey),求可能起点的个数. 三.分析: 结论: 路径唯一 证明: 因此:如果 x > y,则; x < y 时同理. 所以当前...

The___Flash的博客 754

使用AI预测彩票的架构思路

彩票是随机的数字游戏,不要过度依赖AI,本文仅供娱乐研究

淘淘小窝 9407

HDU-5584-LCM Walk

HDU-5584-LCM Walk 传送门 果然如老师说的,lcm和gcd虽然很容易理解,但是跟其他的知识点结合起来就有难度了。 尽管这道题还是lcm和gcd的一个运用。 题目大意:一只青蛙从某个点(x, y)开始跳,每次跳的距离是k = lcm(x, y); 要么到达(x + k, y),要么到达(x, y + k); 此时给出青蛙跳的最终位置(ex, ey); 问有多少种起始位置的可能跳到终点...

qq_44624316的博客 256

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

HDU 5584 LCM Walk 【数学+思维+逆推】

HDU 5584 LCM Walk Problem Description A frog has just learned some number theory, and can’t wait to show his ability to his girlfriend. Now the frog is sitting on a grid map of infinite rows and ...

Waiting For You 393

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

LCM Walk(HDU-5584)

Problem Description A frog has just learned some number theory, and can't wait to show his ability to his girlfriend. Now the frog is sitting on a grid map of infinite rows and columns. Rows are n...

Alex_McAvoy的博客 726

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

HDU 5584 LCM Walk(2015-ICPC-上海赛区)

题目连接:HDU 5584 题目大意:有一只青蛙,它从起点(x,y)出发,每次它会走LCM(x,y)步[LCM(x,y)就是x,y的最小公倍数]到达点(x+LCM(x,y),y)或点(x,y+LCM(x,y)),最终,它会到达点(ex,ey),现给你终点(ex,ey),要你求出它的起点有多少种可能 解题思路:设有一个点是(x,y),gcd(x,y)=k;则有x=ai*k,y=bi*k; 点(

Strive 476

[hdu5584]LCM Walk

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Description A frog has just learned some number theory, and can’t wait to show his ability to his girlfriend. N...

dxyinme-Zz 317

HDU-5584-LCM Walk(GCD/LCM)

题意: 一只青蛙,站在x,y点,每次跳跃,会跳到,(x+lcm(x,y),y) 或者(x,y+lcm(y)) 点。 现在给出终点,(exe_xex​,eye_yey​)求有多少个可能的起点。 思路: 乍一看好像每次又有两种可能,搜索起来复杂度很好。其实每次跳跃都是固定的。 因为lcm(x,y)必然大于 x和y,那么显然上一步加的就是现在比较大的坐标。所以上一步的方向总是固定的。 往回推的时候。 如果 x>y 直接 swap(x,y) 方便计算 现在假设上一步是 x,y 那么 gcd(x,y) = d

qq_43461168的博客 329

HDU5584(LCM Walk)

Problem Description A frog has just learned some number theory, and can't wait to show his ability to his girlfriend. Now the frog is sitting on a grid map of infinite rows and columns. Rows are numb...

snayf的博客 514

HDU 5584 LCM Walk

HDU 5584 LCM Walk Problem Description A frog has just learned some number theory, and can’t wait to show his ability to his girlfriend. Now the frog is sitting on a grid map of infinite rows and columns. Rows are numbered 1,2,⋯ from the bottom, so are t

weixin_51996479的博客 178

HDU 5584 LCM Walk【搜索】

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5584 题意: 分析: 这题比赛的时候卡了很久,一直在用数论的方法解决。 其实从终点往前推就可以发现,整个过程中的点的gcd都是一样的,利用这个性质倒着搜索一遍就好了。 相同的gcd均为gcd(6,10) 以(6,10)为例,假设倒数第二个点到达(6−x∗gcd,...

weixin_30629977的博客 79

【HDU】5584LCM Walk-(数学推导)

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 2708    Accepted Submission(s): 1426   Problem Description A frog has just learned...

红点雷龙XL 295

HDU 5584 LCM Walk (找规律+逆推)

LCM Walk Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1329    Accepted Submission(s): 684 Problem Description A frog has just

In my way 709

HDU 杭电5584 LCM Walk【逆推】

http://acm.hdu.edu.cn/showproblem.php?pid=5584 LCM Walk Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 518    Accepted Submission(s): 2

Determined&Diligent的专栏 2747

HDU 5584 LCM Walk (2015ACM/ICPC亚洲区上海站)

HDU 5584 LCM Walk (2015ACM/ICPC亚洲区上海站)

追梦赤子心 1015
上一篇: Looking for Order (状压DP)
下一篇: Binary Tree HDU - 5573(构造+思维)
Guuuuuu老师儿
博客等级 码龄9年 259粉丝 718原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值