2015ACM/ICPC亚洲区上海站LCM WALK

题意:定义了一种走法,就是从当前的点为sx,sy,可以走到ex,ey;并且ex = sx + z,或者 ey = sy + z,

其中z为lcm(sx,sy);

如果是顺着给你sx,sy,那很好得到之后的两个可能走到的点,但是题目并没有这么给出;而是给了终点;

这就需要从可约及前后变化形式的角度来逆推回去了;

一般的数论都需要用到__gcd();z ,sx,sy,ex,ey中都是含有gcd()的,并且如果将__gcd()除去,得到的(ex/gcd,ey/gcd) = 1;

还有一点可以从顺推得到的就是:

(x,y)=> (x + x*y/gcd,y)||(x,y+x*y/gcd)将后面的式子提前gcd得到(x`+x`*y`,y) 即((y`+1)*x`,y`) 原式可看出是(x`,y`)

即都是在模除的意义下讨论的,大的一项的由来就是从顺推得到的,这样只需判断是否能整除就可以判短是否继续往小的递减,

开始想构造出符合欧几里得一样的mod辗转,但是要因题而异;

code:

<span style="font-size:18px;">#include<bits/stdc++.h>
using namespace std;
int cnt;
int solve(int x,int y)
{
cnt++;
if(x < y) swap(x,y);
if(x%(y+1)||x == y) return cnt;
solve(x/(y+1),y);
}
int main()
{
int x,y,T,kase = 1;
cin>>T;
while(T--){
cnt = 0;
scanf("%d%d",&x,&y);
int gcd = __gcd(x,y); //库中已有的函数,<span style="color:#FF0000;">注意poj中要手写__gcd()</span>
x /= gcd;
y /= gcd;
printf("Case #%d: %d\n",kase++,solve(x,y));
}
}</span>

hdu5548的更多相关文章

随机推荐

  1. svn常用操作命令(不断更新中......)

      1.svn info显示本地或远程条目的信息.打印你的工作拷贝和URL的信息包括:路径.名称.URL.版本库的根.版本库的UUID.Revision.节点类型.最后修改作者.最后修改版本最后修改日 ...

  2. 如何在mac上創建txt文档

    文件編輯(Mac下的記事本),shift + command + T 進入純文字編輯模式!

  3. git - 版本控制器(本地仓库)

    本地创建仓库,然后进行管理.提交到本地仓库(不需要网络),提交到远程仓库(需要网络) 相对于svn为克隆方式,赋值的是整个仓库,svn只是复制的代码.   1.电脑新创建一个”本地仓库”空文件夹 2. ...

  4. sscanf、strsep

    #include <stdio.h> #include <string.h> int main() { char token[] ="abdzxbcdefgh&quo ...

  5. malloc函数的底层实现你是否清楚

    malloc函数的底层实现你是否清楚 说起malloc函数,每个人都能说出它的功能,而且我们经常会用到,那么今天我要说的是关于malloc函数在编译器的底层实现,如果你对它的实现已经很清楚了,那么你可 ...

  6. 分布式 ES 操作流程解析

    概念解析 CURD 操作 CURD 操作都是针对具体的某个或某些文档的操作,每个文档的 routing 都是确认的,所以其所在分片也是可以事先确定的.该过程对应 ES 的 Document API. ...

  7. 关于JFace中的输入值(InputDialog)对话框类

    格式: InputDialog(Shell parentShell, String dialogTitle, String dialogMessage, String initialValue, In ...

  8. 虚反矩阵指令pinv之应用

    pinv指令     在多数解的例子中,有时并不是仅要将其中一变数设定为零之解.为使整个系统得到最佳化,亦可利用pinv指令求得最小模组之合理解.pinv(A)又称为虚反矩阵(pseudoinvers ...

  9. wireshark的ubuntu更新ppa源

    默认的ppa源安装的是1.8.3的,这个源直接更新到1.11.0 $ sudo add-apt-repository ppa:dreibh/ppa $ sudo apt-get update $ su ...

  10. Sql的实际应用

    sql实际应用-递归查询   1.既然要谈到sql,数据库表是必须的   2.数据结构     3.获取某个节点的所有子节点     传统的写法(sql2000) 很麻烦,暂且就不写了     来看看 ...