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

首頁 > 學院 > 開發設計 > 正文

1020. 月餅 (25)

2019-11-11 04:38:26
字體:
來源:轉載
供稿:網友

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

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

輸入格式:

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

輸出格式:

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

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

貪心

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

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

AC

#include<iostream>#include <algorithm>#include<stdio.h>using namespace std;struct Mooncake  {      double m1;  //每個種類數量     double m2;  //每個種類總價     double m3;  //每個種類單價 }moon[1001];//<為升序 ,>為降序,單價降序排列  bool compare ( Mooncake a, Mooncake b ){      return a.m3>b.m3;  }  int main(){	//月餅種數sum, 需求總數req 	int sum, req;	double b = 0;	scanf("%d %d",&sum,&req);	//輸入數量 	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;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绥江县| 白山市| 辛集市| 虹口区| 昆明市| 灵丘县| 万年县| 曲水县| 阿勒泰市| 武夷山市| 五家渠市| 长治县| 鲜城| 尼木县| 邵阳市| 姚安县| 镇坪县| 聂拉木县| 康乐县| 临高县| 沁源县| 米易县| 元阳县| 柘荣县| 乳山市| 延川县| 车致| 德令哈市| 鞍山市| 建平县| 深泽县| 海宁市| 萍乡市| 清水河县| 东山县| 宜都市| 格尔木市| 新竹县| 霍林郭勒市| 江都市| 宜春市|