zoukankan      html  css  js  c++  java
  • 杭电--1009 C语言实现

    思路:要用有限的猫粮得到最多的javabean,则在房间中得到的javabean比例应尽可能的大。
    
    用一个结构体,保存每个房间中的javabean和猫粮比例和房间号,然后将结构体按比例排序,则从比例最大的房间开始交换javabean,即可得到最大值。
    
    
    
    #include<stdio.h>
    #include<stdlib.h>
    
    typedef struct k_ {
        double k;//存储每个房间中javabean和猫粮的比例
    
        int x;//存储房间号
    
    }K_;
    
    int cmp(const void *a, const void *b) {
        return *(double *)a > *(double *)b ? -1 : 1;
    }
    
    
    int main() {
        int j[1000], f[1000], i;
        K_ k[1000];
        int m, n;
        double javabean;
        while (scanf("%d%d", &m, &n) != EOF && !(m == -1 && n == -1)) {
            javabean = 0;
            for (i = 0; i < n; i++) {
                scanf("%d%d", &j[i], &f[i]);
                k[i].k = (double)j[i] / f[i];
                k[i].x = i;
            }
            qsort(k, n, sizeof(k[0]), cmp);
            for (i = 0; i < n; i++) {
                if (m > f[k[i].x]) {
                    javabean += j[k[i].x];
                    m -= f[k[i].x];
                }
                else {
                    javabean += ((double)j[k[i].x] * ((double)m / f[k[i].x]));
                    break;
                }
            }
            printf("%.3lf
    ", javabean);
        }
        return 0;
    }
  • 相关阅读:
    ASP.NET MVC HandleError异常过滤器过滤器用法
    ASP.NET MVC 4 过滤器(Authorize)
    ASP.NET MVC 4 过滤器(Authorize)
    蜜蜂路线
    1220 数字三角形
    Ⅳ.Catalan数
    10:单词排序
    09:明明的随机数
    07:合影效果
    08:病人排队
  • 原文地址:https://www.cnblogs.com/lin0/p/6824907.html
Copyright © 2011-2022 走看看