PAT甲级1070 Mooncake:[C++题解]贪心
生活随笔
收集整理的這篇文章主要介紹了
PAT甲级1070 Mooncake:[C++题解]贪心
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 題目分析
- 題目來源
題目分析
來源:acwing
分析: 對單件從高到低排序。 需要注意的是總需要量d設(shè)成double,不要設(shè)成int。
ac代碼
#include<bits/stdc++.h>using namespace std; const int N = 1010; int n; double d;struct Food{double num, value;bool operator<(const Food& t)const{// value/num > t.value/t.numreturn value*t.num > num*t.value;} }p[N]; int main(){cin >> n >> d;for(int i = 0; i < n; i++) cin>> p[i].num;for(int i = 0; i< n; i++) cin>> p[i].value;sort(p,p+n);double res = 0;for(int i = 0; i< n; i++){if(p[i].num <= d){d -= p[i].num;res += p[i].value;}else{res += (double)(p[i].value/p[i].num) * d;d = 0;}if( d == 0) break;}printf("%.2lf\n",res);}題目來源
PAT甲級1070 Mooncake
https://www.acwing.com/problem/content/1558/
總結(jié)
以上是生活随笔為你收集整理的PAT甲级1070 Mooncake:[C++题解]贪心的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PAT甲级1067 Sort with
- 下一篇: PAT甲级1113 Integer Se