2C1A求调
  • 板块学术版
  • 楼主Splashed_White
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/12/31 18:04
  • 上次更新2023/10/24 06:00:51
查看原帖
2C1A求调
554772
Splashed_White楼主2022/12/31 18:04
#include <bits/stdc++.h>
using namespace std;

inline __int128 read()
{
    register char c = getchar();
    register __int128 x = 0, f = 1;
    while (c < '0' || c > '9') {if (c == '-') f = -1;c = getchar();}
    while (c >= '0' && c <= '9') {x = (x << 3) + (x << 1) + c - 48;c = getchar();}
    return x * f;
}

inline void print(__int128 x)
{
	if(x<0){putchar('-');x=-x;}
	if(x<10){putchar(x+48);return;}
	print(x/10);
	putchar(x%10+48);
}

__int128 n;

pair<__int128, __int128> calVarStdev(vector<__int128> vecNums)
{
	pair<__int128, __int128> res;
    __int128 sumNum = accumulate(vecNums.begin(), vecNums.end(), 0.0);
	__int128 mean = sumNum / vecNums.size();
	__int128 accum = 0.0;
	for_each(vecNums.begin(), vecNums.end(), [&](const __int128 d) {
		accum += (d - mean)*(d - mean);
	});
	__int128 variance = accum / vecNums.size();
	print(variance);
	res.first = variance;
	return res;
}

int main()
{
    n=read();
    __int128 a[n],b[n];
    for (register int i=0;i<n;++i)
        a[i]=read();
    for (register int i=0;i<n;++i)
        b[i]=read();
	pair<__int128, __int128> res;
	vector<__int128> vecNums;
	vecNums.push_back(min(a[0],b[0])*n);
    for (register int i=1;i<n-1;++i)
    {
        __int128 cnt1=abs(a[i]-(max(a[n-1],b[n-1])-min(a[0],b[0])));
        __int128 cnt2=abs(b[i]-(max(a[n-1],b[n-1])-min(a[0],b[0])));
        if (cnt1<=cnt2)
            vecNums.push_back(a[i]*n);
        else
            vecNums.push_back(b[i]*n);
    }
    vecNums.push_back(max(a[n-1],b[n-1])*n);
	res = calVarStdev(vecNums);
	return 0;
}
2022/12/31 18:04
加载中...