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. 利用Multipeer Connectivity框架进行WiFi传输

    什么是Multipeer Connectivity? 在iOS7中,引入了一个全新的框架——Multipeer Connectivity(多点连接).利用Multipeer Connectivity框 ...

  2. Java基础知识强化100:JVM 内存模型

    一. JVM内存模型总体架构图:  方法区和堆由所有线程共享,其他区域都是线程私有的 二. JVM内存模型的结构分析: 1. 类装载器(classLoader) 类装载器,它是在java虚拟机中用途是 ...

  3. Java基础知识强化之IO流笔记63:随机访问流RandomAccessFile

    1. 随机访问流RandomAccessFile RandomAccessFile类不属于流,是Object类的子类.但它融合了InputStream和OutputStream的功能.支持对随机访问文 ...

  4. win7 X64可用的单文件IE6

    由于日常调试需要用到老版本的ie,没有办法!用ietest老师感觉不好使,动不动就死了.就找到了ie的单文件版,有博主 小明爱切糕制作,IE6.7.8单文件版本 http://www.cnblogs. ...

  5. java集合总结

    java中集合是很重要的一点,巩固这边学习的知识,把知识理一下 按马士兵的视频,总结的也很好,集合就是一个“1136” 1个图,1个类Collections,3个知识点:增强for循环,泛型,打包和解 ...

  6. Oracle计算连续天数,计算连续时间,Oracle连续天数统计

    Oracle计算连续天数,计算连续时间,Oracle连续天数统计 >>>>>>>>>>>>>>>>> ...

  7. [转载]Ubuntu 14.04设置固定ip

    参考链接: ubuntu14.04设置静态ip Ubuntu10.10的网络配置 (总结的比较好些) 由于我的虚拟机中的Ubuntu 14.04中,只安装了一个gitlab,gitlab中配置了固定i ...

  8. [记录]gulp compass

    因为个人习惯用compass,所以gulp中,还是用compass进行编译scss文件. 1. 使用npm安装gulp-compass npm install gulp-compass --save- ...

  9. mysql datetime 排序

    在项目里面,使用mysql datetime desc,看见别人使用UNIX_TIMESTAMP(datetime) desc,就用了 datetime进行比较,使用UNIX_TIMESTAMP()进 ...

  10. Margin的垂直外边距问题

    做练习的时候遇到一个margin的问题,代码结构如下,给父元素body中的子元素div设置了margin:50px auto;本来我是想让子元素div距离父元素上边拉开50个像素,结果却是子元素div ...