zoukankan      html  css  js  c++  java
  • 【NOIP2014】【Luogu2118】比例简化(枚举)

    problem

    • 给定三个数A,B,L。将A:B化简为A`:B`。
    • 满足A`,B`都小于L。
    • A`,B`互质
    • A`/B`>=A/B
    • A`/B`-A/B尽可能小
    • A,B<1e6, L < 100

    solution

    总感觉最近写水题,写的有点,傻?。。
    普及组的题,照例一定和枚举有点关系。。。L<100,那就枚举L把,才两个数又正好才n^2诶,,,
    普及组的代码一定不长,那就,,瞎写吧。QwQ
    emm而且枚举L都小于L这个条件就直接满足了,相当于枚举解决部分情况再去枚举其他的样子。
    ——

    记c,d为答案。

    • GCD不说了。辗转相除法
    • c/d>=a/b的话,变为c*b=>a*d会准确一点。
    • c/d-a/b尽可能小就是:比如有两组答案,c1/d1-a/b < c2/d2-a/b显然c1d1组合是更优的,a/b直接没了,c1*d2 < c2*d1这样(当前答案i,j比预备答案c,d优,ij就是c1c2组合才更新嘛)。

    codes

    #include<iostream>
    using namespace std;
    int gcd(int a, int b){
        return !b?a:gcd(b,a%b);
    }
    int main(){
        int a, b, l;
        cin>>a>>b>>l;
        int c = l, d = 1;
        for(int i = 1; i <= l; i++)
            for(int j = 1; j <= l; j++)
                if(gcd(i,j)==1 && i*b>=j*a && i*d<c*j)
                    { c = i, d = j; }
        cout<<c<<' '<<d<<'
    ';
        return 0;
    }
    
  • 相关阅读:
    git-for-windows 安装无图标的问题
    开源协议
    根据iframe获取window
    JS的checkbox状态切换dom无变化
    SQL条件!=null查不出数据
    jquery获取select选中项的文本
    泛型擦除
    树形菜单数据结构
    jqgrid动态填充select
    巨坑:jqgrid竟然取不到编辑模式下input的值
  • 原文地址:https://www.cnblogs.com/gwj1314/p/9444620.html
Copyright © 2011-2022 走看看