zoukankan      html  css  js  c++  java
  • 老鼠与猫的交易

    有一只老鼠很喜欢奶酪,但是奶酪被分别放在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;
    }
  • 相关阅读:
    MD5 加密 以及 加盐加密
    github--新手使用错误分析
    iOS开发UI篇—UITabBarController简单介绍
    Xcode 那些简单实用的插件推荐
    app 转caf 音频 代码
    关于block 用法
    iOS 之播放系统声音
    ios如何实现推送通知
    Centos7安装Redis
    SpringCloud-Zuul网关
  • 原文地址:https://www.cnblogs.com/Lazy-Cat/p/9838390.html
Copyright © 2011-2022 走看看