bzoj3095--数学题
来源:互联网 发布:人民文学 知乎 编辑:程序博客网 时间:2024/05/29 07:57
题目大意:
给定一个长度为n的整数序列x[i],确定一个二元组(b, k)使得S=Σ(k*i+b- x[i])^2(i∈[0,n-1])最小bzoj3095
给定一个长度为n的整数序列x[i],确定一个二元组(b, k)使得S=Σ(k*i+b- x[i])^2(i∈[0,n-1])最小
看Claris大神的题解就行了。实际上就是用2次二次函数的性质。
http://www.cnblogs.com/clrs97/p/4703437.html
代码:
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 inline char Nc(){ 6 static char buf[100000],*p1=buf,*p2=buf; 7 if(p1==p2){ 8 p2=(p1=buf)+fread(buf,1,100000,stdin); 9 if(p1==p2)return EOF;10 }11 return *p1++;12 }13 inline void Read(int& x){14 char c=Nc(),b=1;15 for(;c<'0'||c>'9';c=Nc())if(c=='-')b=-1;16 for(x=0;c>='0'&&c<='9';x=x*10+c-48,c=Nc());x*=b;17 }18 int i,n,x;19 double k,b,A,B,C,D;20 int main()21 {22 Read(n);23 for(i=0;i<n;i++){24 Read(x);25 A+=(double)i*i;B+=(double)i;C+=(double)i*x;D+=x;26 }27 k=(n*C-B*D)/(n*A-B*B);28 b=(D-k*B)/n;29 printf("%.7lf %.7lf",b,k);30 return 0;31 }
阅读全文
0 0
- bzoj3095--数学题
- 数学题
- 数学题
- 数学题
- 数学题
- 数学题
- 数学题
- 数学题
- 数学题
- 数学题
- 数学题
- 数学题
- 数学题
- 数学题
- 数学题
- 数学题
- 数学题
- 一道数学题
- bzoj1723 [ Usaco2009 Feb ] --前缀和(水题)
- java 连 sqlserver 2000 2008、2008R2
- bzoj1901 [ Zju2112 ] --树状数组套主席树
- bzoj3207--Hash+主席树
- docker的安装方法二
- bzoj3095--数学题
- bzoj3208--记忆化搜索
- 35个Java代码性能优化总结
- Java提高篇(二七)-----TreeMap
- bzoj4724 [ POI2017 ] --数论
- 数论概论 第一章
- bzoj1584 [ Usaco2009 Mar ] --DP
- 欢迎使用CSDN-markdown编辑器
- bzoj1079 [ SCOI2008 ] --记忆化搜索