PAT_B 20
Posted chuan-chuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT_B 20相关的知识,希望对你有一定的参考价值。
这道题就是简单的贪心,有几个注意点:
1.又是一个单体有多个属性(即月饼有总量,总价,单价几个属性),这个时候可以考虑使用struct结构,我还是傻傻使用pair,还是没有养成习惯,幸好这道题存下来两个属性就可以,所以pair还能够发挥作用
2.依旧是涉及到排序,即使用sort,自己定义cmp函数
3.有一个填空,之前有一个测试点一直过不去,原来是要用double的我用了int,精度达不到,所以读题的时候还是要确定好数据类型,一定要严谨一点,不要动不动就是用int
#include<iostream> #include<stdio.h> #include<utility> #include<vector> #include<algorithm> using namespace std; bool cmp(pair<double,double> a,pair<double,double> b) return a.second>b.second; int main() freopen("in.txt","r",stdin); vector<pair<double,double>> v; int k; double need; scanf("%d %lf",&k,&need); double a; double b; for(int i=0;i!=k;++i) scanf("%lf",&a); v.push_back(make_pair(a,0)); for(int i=0;i!=k;++i) scanf("%lf",&b); v[i].second=b/v[i].first; sort(v.begin(),v.end(),cmp); double m=0; for(int i=0;i<k;++i) if(need>0) if(need-v[i].first>=0) m+=v[i].first*v[i].second; else m+=need*v[i].second; need-=v[i].first; else break; printf("%.2f",m); return 0;
以上是关于PAT_B 20的主要内容,如果未能解决你的问题,请参考以下文章