• noip2014 比例化简


    在社交媒体上,经常会看到针对某一个观点同意与否的民意调查以及结果。

    例如,对某一观点表示支持的有1498人,反对的有902人,那么赞同与反对的比例可以简单的记为1498:902。

    不过,如果把调查结果就以这种方式呈现出来,大多数人肯定不会满意。

    因为这个比例的数值太大,难以一眼看出它们的关系。

    对于上面这个例子,如果把比例记为5:3,虽然与真实结果有一定的误差,但依然能够较为准确地反映调查结果,同时也显得比较直观。

    现给出支持人数AA,反对人数BB,以及一个上限LL,请你将A:BA:B化简为A:BA′:B′,要求在AA′和BB′均不大于LL且AA′和BB′互质(两个整数的最大公约数是1)的前提下,ABABA′B′≥AB且ABABA′B′−AB的值尽可能小。

    输入格式

    输入共一行,包含三个整数ABLA,B,L,每两个整数之间用一个空格隔开,分别表示支持人数、反对人数以及上限。

    输出格式

    输出共一行,包含两个整数ABA′,B′,中间用一个空格隔开,表示化简后的比例。

    数据范围

    1A,B1061≤A,B≤106,
    1L100,A/BL1≤L≤100,A/B≤L

    输入样例:

    1498 902 10
    

    输出样例:

    5 3

    思路:由于a,b均小于等于L,L的数据范围是100,因此可以暴力枚举a,b,找出符合条件的最优的a,b

    #include <iostream>
    #include <cstring>
    #include <algorithm>
    
    using namespace std ;
    
    double l,m,n ;
    double diff = 1e8 ;
    
    int main(){
        cin >> m >> n >> l;
        int x=0,y=0 ;
        for(double i=1;i<=l;i++){
            for(double j=1;j<=l;j++){
                double t = i/j ;
                if(t-m/n>0 && t-m/n<diff && t<=l){
                    diff = t - m/n ;
                    x = i, y = j ;
                }
            }
        }
        printf("%d %d
    ",x,y) ;
        
        return 0 ;
    } 

    ...

  • 相关阅读:
    springsecurity-微服务-springsecurity工具类封装
    springsecurity-微服务-认证授权的过程
    springsecurity-CSRF
    springsecurity-自动登录实现
    Vulnhub-靶机-DC: 9
    Xss-labs-level3-6
    靶机-生成自有账户和密码提权
    靶机-敲击相关方式汇总
    Vulnhub-靶机-DIGITALWORLD.LOCAL: BRAVERY
    Xss-labs-level1-2
  • 原文地址:https://www.cnblogs.com/gulangyuzzz/p/12380177.html
Copyright © 2020-2023  润新知