AT3534 Sugar Water

题目简介

有四种操作,要配置出糖水的浓度最高,求配置的糖水的质量,以及溶解在其中的糖的质量。

有SPJ

思路简介

四重循环 暴力枚举

代码和解析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include<bits/stdc++.h>
using namespace std;
double a,b,c,d,e,f;
int ansm=100,anss=0;
int main(){
scanf("%lf%lf%lf%lf%lf%lf",&a,&b,&c,&d,&e,&f);
a*=100,b*=100;
for(double i1=0;i1*a<=f;i1+=1){//a操作
for(double i2=0;i2*b+i1*a<=f;i2+=1){//b操作
for(double i3=0;i3*c+i2*b+i1*a<=f;i3+=1){//c操作
for(double i4=0;i4*d+i3*c+i2*b+i1*a<=f;i4+=1){//d操作
if((i3*c+i4*d)/(i1*a+i2*b+i3*c+i4*d)>(double)anss/ansm){//判断是否优于答案
double p=(a*e*i1+b*e*i2)/100;
if(p<(i3*c+i4*d)) continue;//判断浓度是否小于限制
anss=(int)i3*c+i4*d;
ansm=(int)(i1*a+i2*b+i3*c+i4*d);//更新答案
}
}
}
}
}
//输出答案
cout<<ansm<<' '<<anss;
return 0;
}