国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

1020. 月餅 (25)

2019-11-11 03:05:00
字體:
供稿:網(wǎng)友

月餅是中國人在中秋佳節(jié)時吃的一種傳統(tǒng)食品,不同地區(qū)有許多不同風(fēng)味的月餅。現(xiàn)給定所有種類月餅的庫存量、總售價、以及市場的最大需求量,請你計算可以獲得的最大收益是多少。

注意:銷售時允許取出一部分庫存。樣例給出的情形是這樣的:假如我們有3種月餅,其庫存量分別為18、15、10萬噸,總售價分別為75、72、45億元。如果市場的最大需求量只有20萬噸,那么我們最大收益策略應(yīng)該是賣出全部15萬噸第2種月餅、以及5萬噸第3種月餅,獲得 72 + 45/2 = 94.5(億元)。

輸入格式:

每個輸入包含1個測試用例。每個測試用例先給出一個不超過1000的正整數(shù)N表示月餅的種類數(shù)、以及不超過500(以萬噸為單位)的正整數(shù)D表示市場最大需求量。隨后一行給出N個正數(shù)表示每種月餅的庫存量(以萬噸為單位);最后一行給出N個正數(shù)表示每種月餅的總售價(以億元為單位)。數(shù)字間以空格分隔。

輸出格式:

對每組測試用例,在一行中輸出最大收益,以億元為單位并精確到小數(shù)點后2位。

輸入樣例:
3 2018 15 1075 72 45輸出樣例:
94.50

貪心

我覺得這個題的解題關(guān)鍵是找出每一步解決問題的那一步是在操作什么,找出來這一步就很簡單了

局部最優(yōu)解,取得 整體最優(yōu)解,理解到這個題中:單價最高,最后總收益最高,那么問題就好解決了,只要求出單價就可以了

AC

#include<iostream>#include <algorithm>#include<stdio.h>using namespace std;struct Mooncake  {      double m1;  //每個種類數(shù)量     double m2;  //每個種類總價     double m3;  //每個種類單價 }moon[1001];//<為升序 ,>為降序,單價降序排列  bool compare ( Mooncake a, Mooncake b ){      return a.m3>b.m3;  }  int main(){	//月餅種數(shù)sum, 需求總數(shù)req 	int sum, req;	double b = 0;	scanf("%d %d",&sum,&req);	//輸入數(shù)量 	for ( int i = 0; i <sum; i++ ){		scanf("%lf",&moon[i].m1);	}	//輸入總價 	for ( int i = 0; i <sum; i++ ){		scanf("%lf",&moon[i].m2);		//處理成單價 		moon[i].m3 = moon[i].m2 / moon[i].m1; 	}	sort(moon,moon+sum,compare); 		for ( int i = 0; i < sum && req > 0; i++ ){			while ( moon[i].m1 > 0 ){			b = b + moon[i].m3 ;			moon[i].m1--;			req--;			if ( req <= 0 ) break;		}	} 		PRintf("%.2lf",b);	/* 	//測試 	for ( int i = 0; i <sum; i++ ){		cout << moon[i].m3 << endl;	}	*/	return 0;}


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 汝阳县| 方正县| 扬州市| 义乌市| 阿鲁科尔沁旗| 西畴县| 吉首市| 襄垣县| 晋州市| 丰县| 孟津县| 焦作市| 洛浦县| 黄梅县| 平罗县| 鄂州市| 遵义市| 卫辉市| 沙洋县| 宁夏| 凉山| 孟州市| 芦山县| 福建省| 苍梧县| 天台县| 宜兴市| 德兴市| 庆元县| 饶阳县| 墨竹工卡县| 安泽县| 盐亭县| 潞西市| 玉溪市| 广丰县| 贵州省| 夹江县| 大新县| 哈密市| 石门县|