网站建设_超速云建站,家庭电影网站建设,wordpress方框对勾,电商网站建设题库P1883 函数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
Error Curves - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
这两题是一模一样的#xff0c;过一题水两题。 分析
主要难点在于证明F(x)是一个单峰函数可以被三分#xff0c;但是我随便画了几个f(x)之后发现好像… P1883 函数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
Error Curves - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
这两题是一模一样的过一题水两题。 分析
主要难点在于证明F(x)是一个单峰函数可以被三分但是我随便画了几个f(x)之后发现好像就是可以被三分而且a也大于0那就直接开做了。 坑
题目要求答案精度是精确到1e-4还要求四舍五入那就是要求答案精确到1e-5。
但是我们三分的时候一直在缩小的是x的取值x进入f(x)之后才是答案的值。
如果有这么一个二次函数他峰值变化及其缓慢而x的值变的较快那三分x的值就必须比答案更加精确。
具体的值不知道怎么算函数太难了但是留个心眼给三分的值开到两倍多的精度也许就够了。 AC代码
#include bits/stdc.h
//#define int long long
#define fr first
#define se second
#define endl \n
using namespace std;const int N1e45;
int n;
double a[N],b[N],c[N],l,r,mid,eps1e-10;double cul(double x){double MAXa[1]*x*xb[1]*xc[1];for(int i2;in;i)MAXmax(MAX,a[i]*x*xb[i]*xc[i]);return MAX;
}void solve(){cinn;for(int i1;in;i)cina[i]b[i]c[i];while(r-leps){mid(lr)/2;if(cul(mid)cul(mideps))lmid;else rmid;}coutfixedsetprecision(4)cul(l)endl;
}void init(){l0,r1000;
}
signed main(){ios::sync_with_stdio(false),cin.tie(nullptr);int t;cint;while(t--)init(),solve();return 0;
}