zoukankan      html  css  js  c++  java
  • 问题 E: 有理数树

     

    时间限制: 1 Sec  内存限制: 128 MB
    [提交] [状态]

    题目描述

    十九世纪的时候,Moriz Stern (1858)与Achille Brocot (1860)发明了“一棵树”。据说,经由一些简单的规则而产生的这一棵树上,可以包含零以上所有的有理数。这棵树看起来大致这样:
     
    你观察出规则了吗?
    首先,他们在第一列放两个“分数”,第一个是0 / 1,代表0;第二个是1 / 0,代表无穷大。接着他们一列一列地产生这棵树,当他们要产生第k+1列的时候,就先把前k列所有的分数按照大小排成一列(假设有n个),在这些数之间会有n - 1个间隔,那么第k + 1列就准备产生n - 1个数,其值的分子恰好是左右两个数的分子的和、分母是左右两个数的分母的和。
    例如,2 / 3,而它的2就是左边1 / 2的1和右边1 / 1的分子1相加的结果;而2 / 3的3,则是1 / 2的2加上1 / 1的分母1而得。
    从这棵树中,我们可以看出,每个正的最简分数在这棵树中恰好出现一次,我们用字母“L”和“R”分别表示从树根(1 / 1)开始的一步“往左走”和“往右走”,则每一个数都可以由L和R组成的序列表示。
    例如,LRRL表示从1 / 1开始往左走一步到1 / 2,然后往右走到2 / 3,再往右走到3 / 4,最后往左走到5 / 7。我们可以把LRRL看作5 / 7的一种表示法。几乎每个正分数均有唯一的方法表示成一个由L和R组成的序列。
    给定一个分数,输出它的LR表示法。

    输入

    输入有两个互素的正整数m和n(1 ≤ n,m ≤1000)。

    输出

    输出对应的LR表示法。

    样例输入 Copy

    5 7
    

    样例输出 Copy

    LRRL

    #pragma GCC optimize(2)
    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    #include<map> 
    #include <math.h>
    #include<bits/stdc++.h> 
    using namespace std;
    typedef long long ll; 
    inline int read()
    {
        int x=0,f=1;char ch=getchar();
        while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
        while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
        return x*f;
    }
    const int INF=0x3f3f3f3f;
    const int maxn=1e6+100;
    int n,m;
    int a,d;
    int b,c;
    void inint(){
        cin>>n>>m;
        a=d=0;
        b=c=1;
    }
    int main(){
        inint();
        if(n==m){
            return 0;
        }
        while(1){
            if(n*(b+d)==m*(a+c)){
                return 0;
            }
            else if(n*(b+d)>m*(a+c)){
                printf("R");
                a=a+c;
                b=b+d; 
            }
            else if(n*(b+d)<m*(a+c)){
                printf("L");
                c=a+c;
                d=b+d;
            }
        }
    }
     
  • 相关阅读:
    转 Java中wait和sleep方法的区别
    linux 中常用安装配置
    php 图片压缩
    利用 jQuery-photoClip插件 实现移动端裁剪功能并以Blob对象上传
    phpStudy for Linux (lnmp+lamp一键安装包)
    js图片实现延迟加载
    杂项
    正则表达式
    sublime text 3 中 SFTP插件 的 配置
    如何解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题
  • 原文地址:https://www.cnblogs.com/lipu123/p/12613954.html
Copyright © 2011-2022 走看看