今日题目:咖啡
题目分析
题目难度:⭐️⭐️
题目涉及算法:二分,贪心。
ps:有能力的小伙伴可以尝试优化自己的代码或者一题多解,这样能综合提升自己的算法能力
题解报告:
1.思路
每次都贪心取累积后相除的最大值。
2.代码
#include <bits/stdc++.h> using namespace std; double a[10000],c[10000],aa,cc; double num; bool b[10000]; int y; int main() { int n,m; cin>>n>>m; for(int i=1;i<=n;i++) { cin>>a[i]; } for(int i=1;i<=n;i++) { cin>>c[i]; } for(int j=1;j<=m;j++) { num = 0; y = 0; for(int i=1;i<=n;i++) { if((aa+a[i])/(cc+c[i])>num&&b[i]!=1) { num=(aa+a[i])/(cc+c[i]); y=i; } } aa+=a[y]; cc+=c[y]; b[y]=1; } printf("%.3f",aa/cc); return 0; }