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. java_spring_List,Map,Properties,Set注入与遍历

    package com.dao.bean.www; import java.util.List; import java.util.Map; import java.util.Properties; ...

  2. Mybatis案例

    MyBatis MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架. MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索. MyBatis 可 ...

  3. zTree 异步加载

    zTree异步加载数据的简单实现,更为详细的Api请参考 zTree官网   http://www.treejs.cn/ <link href="~/Content/ztree/css ...

  4. GitHub 建立远程仓库

    终端所有信息: Last login: Fri Aug 14 08:58:01 on console wuxiaoyuan:~ lan$ ls -al ~/.ssh ls: /Users/lan/.s ...

  5. 使用SDWebImage 怎么获取指定请求对应的缓存图片呢?

    SDWebImage会对我们加载的网络数据进行缓存,但有时候我们想要拿到缓存数据中的图片,可以通过下个方法实现: UIImage *thumbnailImage = [[SDImageCache sh ...

  6. Objective-C,复合类,Composition

     复合类 5.复合类现实中,复杂的对象都是由较小和较为简单的对象构成:由简单对象创建复杂对象的过程称作合成.合成通常使用在有has-a关系的对象:通常的基本数据类型可以满足构造简单和小的对象.为了从小 ...

  7. 关于工作流之最后Assign给TeamLeader

    如果你的单子Buddy验证通过了.然后也进行了Integrate了,然后就可以把这个单子给TL(Team Leader)了. >>>>>>>>>& ...

  8. c# 远程监控(4) 接收端 RTP包重组 分屏显示

    我们在上一期使用RTP协议,并进行了配置,打包了视频数据,这一期我们就对发送的数据进行重组,并显示在接受端上.最后对其进行扩展,支持多客户端视频发送,并在接收端分屏显示.完成远程监控的模拟. 先来个效 ...

  9. PHP之数组函数归类

    数组之所以强大,除了本身声明.存储方式灵活,它还有坚强后盾:一系列功能各异的数组处理函数.就像一只军队,除了领队将军本身能征善战,指挥英明之外,还有一群不怕死.忠实于他的士兵,这样才能显得整体的强大. ...

  10. JDBC与ODBC的区别与应用

    jdbc是使用通过JAVA的数据库驱动直接和数据库相连,而jdbc-odbc连接的是ODBC的数据源,真正与数据库建立连接的是ODBC! 建议使用JDBC直接连接,同时最好使用连接池! JDBC 是 ...