题目:

思路分析:
简单的贪心选取!
选单价最贵的就行 看代码吧!
代码实现:
const int MAX=1010;
struct node{
double a,b,v;
bool operator<(const node &a )const{
return v>a.v;
}
}e[MAX];
int main(){
int n,d;
cin>>n>>d;
for(int i=0;i<n;i++){
cin>>e[i].a;
}
for(int i=0;i<n;i++){
cin>>e[i].b;
}
for(int i=0;i<n;i++){
e[i].v=e[i].b/e[i].a;
}
sort(e,e+n);
double ans=0;
for(int i=0;i<n;i++){
if(e[i].a<=d){
d-=e[i].a;
ans+=e[i].b;
}
else if(e[i].a>d){
ans+=d*(e[i].b/e[i].a);
break;
}
}
printf("%.2f",ans);
}
909



被折叠的 条评论
为什么被折叠?



