杭电2570
来源:互联网 发布:淘宝上靠谱的翡翠店 编辑:程序博客网 时间:2024/06/05 10:37
这是一个十足的水题。下面只简单说一下具体的过程。
他的大意是要求你用不同的药水配置解药,配出来的浓度不能大于他给出来的浓度w,
很容易就想到只要比w小或等于的都是可以的。然后在考虑大于的情况,很明显我们要从小到大考虑,小的不行大的肯定是不行的。
那么我们就可以将之排序,从小到大。只要是小于的都可以相互配置溶在一起。至于大于的就讨论可以的话就用不行的话就break(后面的就更不可能了)。
#include<iostream>using namespace std;#include<iomanip>#include<cstdlib>int cmp(const void *a,const void *b){ return *(int*)a-*(int*)b;}int main(){ int a[105]; int N,V,W,n,k,sum,i; double s; cin>>N; while(N--) { sum=0; k=0; s=0; cin>>n>>V>>W; for(i=0;i<n;i++) cin>>a[i]; qsort(a,n,sizeof(a[0]),cmp); 这里为了省事采用快排 for(i=0;i<n;i++) { if(a[i]<=W) 这里是只要小于等于就可以 { sum+=V; k+=a[i]; 这是所有浓度的和 s=(double)k/(i+1); } else { if(((double)k+a[i])/(i+1)<=W) 这里的判断将大于的倒入小于等于的是否可以,注意这里一定要类型转换。 { s=((double)k+a[i])/(i+1); k+=a[i]; sum+=V; } else break; } } s=s/100; cout<<sum<<" "; cout<<fixed<<setprecision(2)<<s<<endl; } return 0;
- 杭电2570
- 迷障(杭电2570)
- 杭电
- 杭电
- 杭电
- 杭电 1234 和 杭电 2115
- 杭电2056之Rectangles 杭电
- 杭电ACM1061Rightmost Digit
- 杭电2099 7.11
- 杭电ACM 1003
- 杭电 ACM 2016
- 杭电ACM1466
- 杭电ACM1003
- 杭电ACM1225
- 杭电ACM2023
- 杭电ACM2602
- 杭电ACM2955
- 杭电ACM3198
- adb 的常见命令操作
- git使用常遇到的问题
- JAXB常用的annotation注解
- 第13周项目13-汉诺塔扩展(修正)
- H77、Z75、Z77主板有什么区别?
- 杭电2570
- hdu 4059 The Boss on Mars 容斥原理
- 顶级技术网站博客汇总
- 从SQLhelper和D层体会“形式主义”
- IOS6 学习笔记(3)—— 委托协议(接口)
- 谈谈C语言指针那些陈年旧事
- 新浪微博客户端开发--显示单条微博
- 使用strace和ltrace跟踪程序调用
- redis做计数器相关