HDOJ1009
#include "iostream"
#include "algorithm"
#include "cstdio"
using namespace std; struct Point
{
int x;
int y;
double z;
}; bool cmp(const Point &a,const Point &b)
{
return a.z > b.z;
}
int main()
{
while()
{
int M;
int n; cin >> M >> n; if(M == - && n == -)
break;
Point *point = new Point[n];
for(int i=;i<n;i++) //sort
{
cin >> point[i].x >> point[i].y ;
point[i].z = double(point[i].x)/double(point[i].y);
}
sort(point,point+n,cmp); double food = ;
int i;
for(i=;i<n;i++) //caculate
{
if(M >= point[i].y)
{
M = M - point[i].y;
food = food + point[i].x;
} else
{
food = food + double(M) * point[i].x/point[i].y; //当double与整数相乘(除)就会变成double,完美的解决了精度的问题。遇到精度问题时,一定要把高精度数放在前面。
break;
} }
printf("%.3lf\n",food); }
return ;
}
第一:精度问题,要将高精度的放在表达式前面进行优先处理。
第二:反复记忆上述的指针排序法
1.用指针new空间
2.函数传入的指针写法
3.在结构体内部的东西可以用这种方法排序,比较灵活,可以随意的在结构体内部增加或删减元素
HDOJ1009的更多相关文章
- hdoj1009 FatMouse' Trade——贪心算法
贪心思路:按单位猫粮能兑换到的javaBean从大到小将组合进行排序,总是在当前兑换尽可能多的javabeans 问题描述:点击打开链接 hdoj1009 FatMouse's Trade 源代码: ...
- HDOJ-1009 FatMouse' Trade
http://acm.hdu.edu.cn/showproblem.php?pid=1009 # include <stdio.h> # include <algorithm> ...
- FatMouse' Trade(hdoj1009)
Problem Description FatMouse prepared M pounds of cat food, ready to trade with the cats guarding th ...
- HDOJ----------1009
题目: FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Othe ...
随机推荐
- MySQL数据库----数据操作
注意的几点:1.如果你在cmd中书命令的时候,输入错了就用\c跳出 2.\s查看配置信息 一.操作文件夹(库) 增:create database db1 charset utf8; 删:drop d ...
- 【运维技术】Maven + Gogs + Nexus 实现版本管理 + 代码模块开发管理
Gogs:能够实现fork + 代码提交 + 代码框架 Nexus:进行jar包的版本管理,私服下载jar包共享jar包 Maven:在客户端进行模块管理和批量操作 1. 本地maven仓库配置配置s ...
- Python3 识别验证码(opencv-python)
Python3 识别验证码(opencv-python) 一.准备工作 使用opencv做图像处理,所以需要安装下面两个库: pip3 install opencv-python pip3 insta ...
- Intel RDT
首先 spec, 从671页看起 https://software.intel.com/sites/default/files/managed/a4/60/325384-sdm-vol-3abcd.p ...
- SYSBIOS学习笔记---线程(Threads)
在SYS/BIOS中,广义上指被处理器执行的任何独立的指令流.线程是一个能够调用一个函数或者中断服务程序的单点控制.在sysbios系统中一共有硬件中断(HWI).软件中断(SWI).任务(Task) ...
- 【前端】javascript+jquery实现手风琴式的滚动banner或产品展示图
实现效果 实现步骤 // 鼠标放入到li中该盒子变宽,其他盒子变窄,鼠标移开大盒子,恢复原样 // 实现步骤 // 1. 给li添加背景 // 2. 绑定onmouseover事件,鼠标放入到li中, ...
- Python3基础 list sort 从小(大)到大(小)排序
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- Android灯光系统--通知灯深入分析
Android灯光系统--通知灯深入分析 通知的类别 声音 振动 闪灯 APP如何发出通知灯请求 getSystemService(获得通知服务) 构造notification 类别 其他参数(颜色, ...
- P4879 ycz的妹子
思路 让你干啥你就干啥呗 查询第x个妹子就get一下再修改 这里稳一点就维护了三个东西,也许两个也可以 代码 #include <iostream> #include <cstdio ...
- MIMO雷达比幅单脉冲测角精度分析(系统工程与电子技术)
MIMO雷达比幅单脉冲测角精度分析(系统工程与电子技术)