题解#A20923
2026-09-13 07:00:32
发布于:湖南
0阅读
0回复
0点赞
题目简述:
现在有一个人想拉低一场电影的平均分,请问他最少要投几票。
即:现在有个数的平均数保留一位小数为,现在想要添加个数,使得平均数保留一位小数为 。
简要计算:
我们可以通过数学推导的方式得到答案:
首先,要添加的数应该越小越好,在本题中,添加的数应为 1。
于是我们就有:
解这个不等式:
;
得到的范围:。
在时为 0,要不然为大于等于的最小整数。
坑点分析:
**注意,在最坏情况下,应尽可能大,又因为平均得分四舍五入保留一位为,故应加上 0.049999999999。
**
再分析一下,要使最小,应靠近,故也应加上 0.049999999999。
且注意,和均小于 10。
同时,的值为整数,所以要取整。
算出后,再取即可。
最后贴上代码:
#include<bits/stdc++.h>
using namespace std;
long long n;
double x,y;
int main(){
while(cin>>x>>y>>n){
if(y==x) cout<<0<<endl;
else{
x=min((double)10,x+0.049999999999);
y=min((double)10,y+0.049999999999);//此处9的个数不要太多,不然爆精度
cout<<(long long)ceil(((long long)(x*(double)n)-y*(double)n)/(y-1.0))<<endl;//注意细节处理!
}
}
return 0;
}
这里空空如也





有帮助,赞一个