思路:要用有限的猫粮得到最多的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 ? - : ;
} int main() {
int j[], f[], i;
K_ k[];
int m, n;
double javabean;
while (scanf("%d%d", &m, &n) != EOF && !(m == - && n == -)) {
javabean = ;
for (i = ; 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[]), cmp);
for (i = ; 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\n", javabean);
}
return ;
}

最新文章

  1. 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍
  2. sql server 公共表达式的简单应用(cte)
  3. 剑指Offer面试题:22.二叉搜索树的后序遍历序列
  4. 【集合框架】JDK1.8源码分析之ArrayList(六)
  5. Python日志logging
  6. My Sql 中要Alter Table的同学请注意!!!
  7. 仿Office的程序载入窗体
  8. 【poj1186】 方程的解数
  9. mysql优化思路
  10. sqlserver允许远程连接的配置
  11. Ubuntu 更改文件夹权限及chmod详细用法
  12. Oracle buffer cache与相关的latch等待事件
  13. C#细节忽略的问题:int 与 int?
  14. Form标签+Css基础
  15. Python 与 C/C++ 交互的几种方式
  16. python基础教程002_列表与元组
  17. HTML学习笔记01-HTML简介
  18. .NetCore源码阅读笔记系列之Security (四) Authentication &amp; AddJwtBearer
  19. linux 组管理
  20. django搭建一个小型的服务器运维网站-拿来即用的bootstrap模板

热门文章

  1. 完美解决win10系统无法安装.NET Framework问题
  2. spark注册虚拟表和取消注册
  3. WebGL简易教程(十五):加载gltf模型
  4. Scrapy深度和优先级
  5. Bootstrap Table的使用详解
  6. Codeforces940掉分记
  7. 开发环境Vue访问后端接口教程(前后端分离开发,端口不同下跨域访问)
  8. 龙芯 3A4000 Fedora28 安装笔记
  9. 线性最长cover(无讲解)
  10. 理想乡题解 (线段树优化dp)