大家好,我是泡泡,给大家带来每日一题的目的是为了更好的练习算法,我们的每日一题为了让大家练到各种各样的题目,熟悉各种题型,一年以后,蜕变成为一个不一样的自己!
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
❤️ :热爱C/C++与算法学习,云计算等,期待一起交流!
🙏作者水平有限,如果发现错误,求告知,多谢!
👻高校算法学习社区:高校算法学习社区-CSDN社区云
一起加入刷题内卷大军,还可以加入专属内卷群,里面福利多多大佬多多!
今日题目:咖啡
题目分析
题目难度:⭐️⭐️
题目涉及算法:二分,贪心。
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;
}