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

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

1020. 月餅 (25)

2019-11-11 03:22:44
字體:
來源:轉載
供稿:網友

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

注意:銷售時允許取出一部分庫存。樣例給出的情形是這樣的:假如我們有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;}


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 临城县| 集安市| 嘉义市| 新建县| 西林县| 西丰县| 谢通门县| 油尖旺区| 永春县| 南川市| 鹿泉市| 彰武县| 邯郸县| 巨鹿县| 巴塘县| 固始县| 虎林市| 固原市| 象州县| 乡宁县| 岳池县| 阿拉尔市| 云梦县| 珲春市| 大渡口区| 乌鲁木齐县| 保亭| 福州市| 宁远县| 招远市| 林周县| 沙洋县| 靖宇县| 万山特区| 隆子县| 克什克腾旗| 元阳县| 阿拉善盟| 南昌县| 根河市| 天水市|