• 老鼠与猫的交易


    有一只老鼠很喜欢奶酪,但是奶酪被分别放在N个房间里,而且这些房间都有一只猫咪看守,现在它准备和猫咪们做个交易。它有M磅的猫食,想用这M磅猫食换取奶酪。在猫咪看守的每一个房间里有奶酪J[i]磅,同时猫咪需要F[i]磅的食物,如果老师给猫咪F[i]*a%的猫食,那么它就可以得到J[i]*a%的奶酪。现在已知每只猫咪对猫食的需求量和每个房间的奶酪数,那老鼠怎样才能换得最多的奶酪呢?

    输入

    第一行输入参数M和N,后面跟N行(每个房间的奶酪数和猫食的需求量)。在输入M和N为-1和-1时程序终止。

    输出

    分行输出老鼠得到的最多的奶酪数,保留三位小数。

    样例输入

    5 3
    7 2
    4 3
    5 2
    20 3
    25 18
    24 15
    15 10
    -1 -1
    

    样例输出

    13.333
    31.500
    #include <stdlib.h>
    #include <stdio.h>
    int main()
    {
        int m;
        int n;
        int k;
        int i;
        int a[1001],b[1001];
        double sum=0;
        double p[1001];  //
        double max = 0;
        
        while(scanf("%d %d",&m,&n)&&m!=-1&&n!=-1)
        {
            
            sum=0;  //
            for(i=0;i<n;i++)
            {
                scanf("%d %d",&a[i],&b[i]);
                p[i]=(double)a[i]/b[i];
            }
            while(m!=0&&n!=0)
            {
                
                max=0;
                for(i=0;i<n;i++)
                {
                    if(p[i]>max)
                    {
                        max=p[i];
                        k=i;
                    }
                }
                if(m-b[k]>=0)
                {
                    m=m-b[k];
                    sum+=a[k];
                    p[k]=0;
                }
                else
                {
                    sum+=(double)p[k]*m;
                    m=0;
                }
            }
            printf("%.3lf
    ",sum);
        }
        
        return 0;
    }
  • 相关阅读:
    Docker创建tomcat镜像简单使用
    Eclipse和Jdk版本问题
    HashTable源码阅读
    HashMap源码阅读
    报错:Multiple annotations found at this line:
    python全栈开发学习03
    python全栈开发学习 02
    关于termux在手机上搭载Linux系统,python,ssh
    python全栈开发学习 01
    机器学习实战
  • 原文地址:https://www.cnblogs.com/Lazy-Cat/p/9838390.html
Copyright © 2020-2023  润新知