其他分享
首页 > 其他分享> > 2022牛客暑期多校训练营2

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

 

标签:sumy,sumx,read,ll,多校,long,牛客,2022,ans
来源: https://www.cnblogs.com/qywyt/p/16515322.html