洛谷P5082 成绩

原来的空间限制是5MB,其实是很足够的,现在调成128MB,变成了没有思维难度的大水题。

不过,我还是想说一下空间限制为5MB的解题思路。

题目要求的是(每一科的满分之和*3-每一科的实际得分之和*2)÷每科所扣除分数的和

我们可以在输入数据的第二行和第三行求出每一科的满分之和每一科的实际得分之和这两个量

然后某科所扣除分数,是等于某科满分-实际得分。用交换律可得每科所扣除分数的和=每一科的满分之和-每一科的实际得分之和

于是我们就可以只求出每一科的满分之和每一科的实际得分之和这两个量,来算出综合成绩啦~

#include <bits/stdc++.h>

using namespace std;

int main() {
    double b = 0.0, c = 0.0;
    int a, n;
    // 在代码实现的时候,不需要数组。我们只用每次读入一个数,然后用累加器累加就行啦~省一个巨大的数组呢~
    scanf("%d", &n);
    for(int i = 1; i <= n; i++) {
        scanf("%d", &a);
        b += 1.0 * a;
    }
    for(int i = 1; i <= n; i++) {
        scanf("%d", &a);
        c += 1.0 * a;
    }
    printf("%.6lf", (b * 3 - c * 2) / (b - c));
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/iycc/p/10204629.html
今日推荐