L2

您所在的位置:网站首页 给你94分 L2

L2

#L2| 来源: 网络整理| 查看: 265

月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。

注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有 3 种月饼,其库存量分别为 18、15、10 万吨,总售价分别为 75、72、45 亿元。如果市场的最大需求量只有 20 万吨,那么我们最大收益策略应该是卖出全部 15 万吨第 2 种月饼、以及 5 万吨第 3 种月饼,获得 72 + 45/2 = 94.5(亿元)。

输入格式: 每个输入包含一个测试用例。每个测试用例先给出一个不超过 1000 的正整数 N 表示月饼的种类数、以及不超过 500(以万吨为单位)的正整数 D 表示市场最大需求量。随后一行给出 N 个正数表示每种月饼的库存量(以万吨为单位);最后一行给出 N 个正数表示每种月饼的总售价(以亿元为单位)。数字间以空格分隔。

输出格式: 对每组测试用例,在一行中输出最大收益,以亿元为单位并精确到小数点后 2 位。

输入样例:

3 20 18 15 10 75 72 45

输出样例:

94.50

分析 按照单价排序,优先选择单价最高的。

代码

// _ooOoo_ // o8888888o // 88" . "88 // (| -_- |) // O\ = /O // ____/`---'\____ // . ' \| |// `. // / \||| : |||// \ // / _||||| -:- |||||- \ // | | \\ - /// | | // | \_| ''\---/'' | | // \ .-\__ `-` ___/-. / // ___`. .' /--.--\ `. . __ // ."" '< `.___\__/___.' >'"". // | | : `- \`.;`\ _ /`;.`/ - ` : | | // \ \ `-. \_ __\ /__ _/ .-` / / // ======`-.____`-.___\_____/___.-`____.-'====== // `=---=' // // ............................................. // 佛祖保佑 一发AC 永无BUG #include #define LL long long using namespace std; const int maxn = 1e5 + 10; const int inf = 0x3f3f3f3f; const double PI = acos(-1.0); typedef pair PII; struct node { double have, price;//题目描述的正数,不一定为整数,卡测试点1 double greed;//每单位重量的价格 const bool operator t.greed; }//重载小于号,按照单位价格降序 } mooncake[maxn]; int main(int argc, char const *argv[]) { int n, d; cin >> n >> d; for (int i = 0; i < n; i++) { cin >> mooncake[i].have; } for (int i = 0; i < n; i++) { cin >> mooncake[i].price; } for (int i = 0; i < n; i++) { mooncake[i].greed = mooncake[i].price*1.0/mooncake[i].have; } sort(mooncake, mooncake + n); double ans = 0; int now = 0; while (now < n) { if (mooncake[now].have >= d) { ans += mooncake[now].greed * d; break; } ans += mooncake[now].price; d -= mooncake[now].have; now++; } printf("%.2lf\n", ans); return 0; }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3