题目:月饼
题意:给出n种月饼的重量和总价,问怎么卖收益最大!
思路:按每种月饼的单价(重量/总价)递增排序,然后依次求在D范围的月饼都卖,最后不足当前月饼总量时按单价*D卖出所有的D即为最大收益!
代码:
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
const int maxn = 1005;
struct whole{
double w,v;
double pro;
}a[maxn];
bool cmp(whole x,whole y){
return x.pro > y.pro;
}
int main()
{
int n,d;
while(~scanf("%d%d",&n,&d)){
for(int i=0;i<n;i++) scanf("%lf",&a[i].w);
for(int i=0;i<n;i++) {scanf("%lf",&a[i].v);a[i].pro = a[i].v/a[i].w;}
sort(a,a+n,cmp);
double sum = 0;