PTA月饼
一、题目描述
二、解题思路
这是个简答的贪心题,就直接按照平均价位从大到小排序,然后一直取就行了,直到所有的吨用完了。
三、代码实现
1 #include "bits/stdc++.h" 2 using namespace std; 3 struct node{ 4 double num; 5 double v; 6 int w; 7 }dd[1010]; 8 bool cmp(node a,node b) 9 { 10 return a.v > b.v; 11 } 12 int main() 13 { 14 int m; 15 double tt; 16 double w; 17 cin >> m >> tt; 18 for(int i = 1;i <= m;i++) 19 cin >> dd[i].num; 20 for(int i = 1;i <= m;i++){ 21 cin >> w; 22 dd[i].w = w; 23 dd[i].v = w / dd[i].num; 24 } 25 sort(dd + 1,dd + 1 + m,cmp); 26 double ans = 0; 27 for(int i = 1;i <= m;i++){ 28 if(tt > dd[i].num){ 29 tt -= dd[i].num; 30 ans += dd[i].w; 31 } 32 else { 33 ans += dd[i].v * tt; 34 break; 35 } 36 } 37 cout << fixed << setprecision(2) << ans; 38 return 0; 39 }
本文来自博客园,作者:{scanner},转载请注明原文链接:{https://home.cnblogs.com/u/scannerkk/}