1009acm
这道题有点小疑问
为什么我用sum_JavaBean+=(double)m / all_evel[j].b*all_evel[j].a;可以达到AC
用sum_JavaBean+=(double)all_evel[j].cost*m;达不到AC 有牛人可以给我解答一下
#include<cstdlib>
#include<cstdio>
#include<string.h>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
struct scale
{
double a;
int b;
double cost;
};
bool complare(scale S1,scale S2)
{
return S1.cost > S2.cost;
}
int main()
{
int n,m;
int i,j;
int last_level = 0;
//scale all_evel[10010];
double sum_JavaBean = 0;
while(scanf("%d %d",&m,&n)!=EOF)
{
sum_JavaBean = 0;
if(n == -1 && m == -1)
break;
scale *all_evel = new scale[n];
for(i = 0;i< n ;i++)
{
cin>>all_evel[i].a>>all_evel[i].b;
if(all_evel[i].b == 0)
{
all_evel[i].cost = 10000;
}
else
all_evel[i].cost = (float)all_evel[i].a / all_evel[i].b;
}
sort(all_evel,all_evel+n,complare);
for(j=0;j<n;j++)
{
if(m>all_evel[j].b)
{
sum_JavaBean+=all_evel[j].a;
m -= all_evel[j].b;
}
else
{
sum_JavaBean+=(double)m / all_evel[j].b*all_evel[j].a;
m = 0;
break;
delete []all_evel;
}
}
printf("%.3lf\n",sum_JavaBean);
}
return 0;
}
随机推荐
- Spring的三级缓存详解
目录 1.什么是三级缓存 2.三级缓存详解 Bean实例化前 属性赋值/注入前 初始化后 总结 3.怎么解决的循环依赖 4.不用三级缓存不行吗 5.总结 一.什么是三级缓存 就是在Bean生成流程中保 ...
- JAVA基础之多线程一期
一.并发与并行的区别 并发:指同一时间段,两个或多个事件交替进行 并行:指同一时间段,两个或多个事件同时进行 二.进程与线程的区别 进程:正在内存中运行的程序就是进程 线程:线程归属于进程,它是进程中 ...
- VScode前端代码编辑器:修改默认打开的浏览器和代码提示设置
一.修改默认打开的浏览器 二.代码提示设置
- Python3循环结构(一)for循环
Python3循环结构 在Python中主要有两种类型的循环结构:for循环和while循环.for循环一般用于有明显边界范围的情况,例如,计算1+2+3+4+5+-+100等于几的问题,就可以用fo ...
- Font Awesome文档使用手册
Font Awesome 字体为您提供可缩放矢量图标,它可以被定制大小.颜色.阴影以及任何可以用CSS的样式. 使用文档:https://fa4.uihtm.com/ Font Awesome 是一套 ...
- C#中的弱引用
弱引用保持的是一个GC"不可见"的引用,是指弱引用不会增加对象的引用计数,也不会阻止垃圾回收器对该对象进行回收.因此,弱引用的目标对象可以被垃圾回收器回收,而弱引用本身不会对垃圾回 ...
- 实战案例分享:如何基于Apache SeaTunnel全方位进行高效二次开发
大家好,我是范佳,是Apache SeaTunnel社区的PMC member,同时也是白鲸开源高级开发工程师.今天给大家分享一些基于Apache SeaTunnel二次开发的内容. 这部分内容主要涉 ...
- 记录一次自己用 AI 写IOS APP的经历
我是几乎没有移动端开发经验的.仅有的一点安卓开发经验还是十几年前没毕业的时候自己瞎折腾. 故事的起源是每天辅导我儿子功课时的暴跳如雷. 我儿子上一年级了,在语文的生词上落后得非常严重(当然可能是他同学 ...
- Windows下使用syscall.SIGUSR1报错:SIGUSR1 not declared by package syscall
windows打开hyperledger/fabric项目时,\fabric\integration\e2e\e2e_signal_test.go中的syscall.SIGUSR1会报错. 这是因为 ...
- gitea服务的搭建
gitea服务的搭建 gitea是一个轻量级的Git服务器,可以在Linux.Windows和MacOS等平台上运行.gitea提供了一个简洁的Web界面,方便用户管理代码仓库.团队协作和代码审查.g ...