HDU 5584 LCM Walk【搜索】
题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=5584
题意:
分析:
这题比赛的时候卡了很久,一直在用数论的方法解决。
其实从终点往前推就可以发现,整个过程中的点的gcd都是一样的,利用这个性质倒着搜索一遍就好了。
相同的gcd均为gcd(6,10)
以(6,10)为例,假设倒数第二个点到达(6−x∗gcd,10),那么x=(6−x∗gcd)∗10/gcd,设6=k1∗gcd, 10=k2∗gcd,那么x满足x=k1∗k2/(k2+1),每次只要判断k2+1是否能被k1整除就可以了。
代码:
#include<iostream>
using namespace std;
int gcd(int a, int b){ return b?gcd(b, a % b):a;}
int cnt = 0;
int g;
int c = 1;
void dfs(int a, int b)
{
if(a < 1 || b < 1) return ;
cnt++;
if(a % (b + 1) == 0) dfs(a / (b + 1), b);
if(b % (a + 1) == 0) dfs(a, b/(a + 1));
}
int main (void)
{
int T;cin>>T;
while(T--){
int x, y;
cin>>x>>y;
g = gcd(x, y);
x /= g;
y /= g;
cnt = 0;
dfs(x, y);
cout<<"Case #"<<c<<": "<<cnt<<endl;
c++;
}
return 0;
}
HDU 5584 LCM Walk【搜索】的更多相关文章
- HDU 5584 LCM Walk 数学
LCM Walk Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5584 ...
- HDU 5584 LCM Walk(数学题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5584 题意:(x, y)经过一次操作可以变成(x+z, y)或(x, y+z)现在给你个点(ex, e ...
- hdu 5584 LCM Walk(数学推导公式,规律)
Problem Description A frog has just learned some number theory, and can't wait to show his ability t ...
- hdu 5584 LCM Walk
没用运用好式子...想想其实很简单,首先应该分析,由于每次加一个LCM是大于等于其中任何一个数的,那么我LCM加在哪个数上面,那个数就是会变成大的,这样想,我们就知道,每个(x,y)对应就一种情况. ...
- HDU - 5584 LCM Walk (数论 GCD)
A frog has just learned some number theory, and can't wait to show his ability to his girlfriend. No ...
- HDU 5844 LCM Walk(数学逆推)
http://acm.hdu.edu.cn/showproblem.php?pid=5584 题意: 现在有坐标(x,y),设它们的最小公倍数为k,接下来可以移动到(x+k,y)或者(x,y+k).现 ...
- L - LCM Walk HDU - 5584 (数论)
题目链接: L - LCM Walk HDU - 5584 题目大意:首先是T组测试样例,然后给你x和y,这个指的是终点.然后问你有多少个起点能走到这个x和y.每一次走的规则是(m1,m2)到(m1+ ...
- HDU5584 LCM Walk 数论
LCM Walk Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Su ...
- hdu-5584 LCM Walk(数论)
题目链接:LCM Walk Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)To ...
随机推荐
- 【html、CSS、javascript-6】JavaScript
JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理. 参考功能网站: ht ...
- swiper 报错 ‘ Can't find variable: Dom7’
一般报这个错是因为浏览器兼容问题,例如低版本的IE 现在通过npm install swiper 安装的版本都是4.x的 我的解决方法就是安装低版本的swiper, npm install swipe ...
- 20190722-Moni和Boly的故事
Moni(模拟)可以得到60分 Boly(暴力)可以得到40分 还好说,这次有点可行. 过程是: 先看了T3,可以模拟,然后做T1T2 T1 好说,$exgcd$,不会. 暴力,暴力!骗了40. T2 ...
- MarioTCP, take it..
MrioTCP,超级马里奥,顾名思义,他不仅高效,而且超级简易和好玩.同时他可以是一个很简洁的Linux C 开发学习工程.毫不夸张的说,如果全部掌握这一个工程,你会成为一个Linux C的牛人:当然 ...
- yield和return
yield 是用于生成器.什么是生成器,你可以通俗的认为,在一个函数中,使用了yield来代替return的位置的函数,就是生成器.它不同于函数的使用方法是:函数使用return来进行返回值,每调用一 ...
- 华为RH2288 V3服务器进入BIOS并设置iBMC地址
服务器重启后 第一个画面 提示Ctrl+H或Ctrl+S进入相关配置 其中, Ctrl+H进入WebBIOS初次安装系统可在此做RAID配置 此画面不做操作,等待跳过 进入第二画面 可以选择BootM ...
- 2019.10.20 csp-s模拟测试 lrd试题 反思总结
赶进度赶进度,丢个代码两三句备注一下完事了. day1: 前面两道题没实际写代码怕印象不深所以描述一下大意. T1: 题目大意:给出两个数&.|.^的结果(可能只给出其中某一项或者某两项),求 ...
- Sql server定时执行某个sql 通过Windows 计划任务(非代理Job方式)
建立 bat文件.内容如下: osql -s "xxx.xxx.xx.x" -U sa -P sa -d DB -i TruncateSql.sql osql -S "l ...
- !important覆写css行内样式
<div class="block"> <span style="font-weight: bold; color: red;">Hel ...
- SCAN listener and Node listener – How does it work
http://www.mydbspace.com/? p=324 Single Client Access Name (SCAN) is new feature of oracle 11gR2 gri ...