2022牛客暑期多校训练营2

2022/7/24 23:22:51

本文主要是介绍2022牛客暑期多校训练营2,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

打的特别自闭,特别是最后太阳穴很疼,滚去睡觉了。唯一的贡献是J题。

ABCDEFGHIJKL

 

J题一眼看去就是最小二乘法,百度找了个公式套上去过了。

 

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll read()
{
    ll x;scanf("%lld",&x);return x;
}

double ans=0;
ll sumx,sumy,sumxy,sumxx;
ll n,y[1000010];
void work()
{
    sumx=sumy=sumxy=sumxx=0;
    ans=0;
    n=read();
    for(int i=1;i<=n;i++)
    {

        y[i]=read();
        sumy+=y[i];
        sumxy+=i*y[i];
        sumx+=i;
        sumxx+=1ll*i*i;
    }
    double a,b;

    b=(sumxy-sumx*1.0*sumy/n)/(sumxx-sumx*1.0*sumx/n);
    a=sumy*1.0/n-b*sumx/n;
    for(int i=1;i<=n;i++)
        ans=ans+pow(y[i]-b*i-a,2);
    printf("%.10lf\n",ans);


}
int main()
{
    for(int t=read();t;t--)
        work();
}
J

 



这篇关于2022牛客暑期多校训练营2的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程