@Aonrbet
2018-12-13T11:41:54.000000Z
字数 761
阅读 888
题解
咳咳,离开机房后有一段时间了,做的第一到上手题(自信题),写道题解找找感觉
其实这道题超简单的,原来好像空间限制到了,不过现在改道之后真的是一道大水题啦!不一定要用数组做哦,就把他当成空间限制的题来做吧,一种思维转换的培养,刷刷这道题确实挺有必要的
首先如果这道题限制到的话,用数组肯定过不了,那么如何转换?
首先题目要求(每一科的满分之和*3-每一科的实际得分之和*2)÷每科所扣除分数的和
,很容易想到把每一课的算出来,最后加起来再除以每课扣分之和,嗯,不错,好思路,但你过不了这道题
于是就有了这样一种思路:
每课满分之和*3-每课实际得分之和*2/(每课满分之和-每课实际得分之和)
(有点绕口)
这种办法可行,于是为什么呢?小学的交换律和结合律我真的不想讲,不过在这里还是要说一下(就当复习了):
由
可得(结合律)
然后得到 (分配率and结合律)
其中为每课扣除分数之和,就等于各科满分之和,就等于各科实际得分之和
所以我们上面的思路是有数学依据的,所以他一定是对的,所以放心去打你的code吧,少年!
code
#include <cstdio>
int a , n ;
double ans , num ;
int main(){
scanf( "%d" , &n ) ;
for( int i = 0 ; i < n ; i ++ ){
scanf( "%d" , &a ) ;
ans += (double)a;
}
for( int i = 0 ; i < n ; i ++ ){
scanf( "%d" , &a ) ;
num += (double)a ;
}
printf( "%0.6lf" , ( ans * 3 - num * 2 ) / ( ans - num ) ) ;
return 0 ;
}