标签:tor 幸好 使用 单体 freopen 简单的 div txt iostream
这道题就是简单的贪心,有几个注意点:
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; }
标签:tor 幸好 使用 单体 freopen 简单的 div txt iostream
原文地址:https://www.cnblogs.com/chuan-chuan/p/11435987.html