打的特别自闭,特别是最后太阳穴很疼,滚去睡觉了。唯一的贡献是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
原创文章,作者:745907710,如若转载,请注明出处:https://blog.ytso.com/276760.html