UVA 1476 A - Error Curves——三分
1.函数f只有一个凹点, 可以三分
2.三分精度比较高,50次过不了,100次就过了
#include #include #include #include #include using namespace std;const int maxn = 1e4 + 10;int n, a[maxn], b[maxn], c[maxn];double cal(int a, int b, int c, double x) { return x * x * a + x * b + c;}double f(double x) { double maxv = cal(a[1], b[1], c[1], x); for (int i = 2; i <= n; i++) { maxv = max(maxv, cal(a[i], b[i], c[i], x)); } return maxv;}double sanfen(double l, double r) { for (int i = 0; i < 100; i++) { double mid = (l + r) / 2; double mmid = (mid + r) / 2; if (f(mid) < f(mmid)) r = mmid; else l = mid; } return min(f(l), f(r));}int main() { int T; scanf("%d", &T); for (int kase = 1; kase <= T; kase++) { scanf("%d", &n); for (int i = 1; i <= n; i++) { scanf("%d %d %d", &a[i], &b[i], &c[i]); } printf("%.4lf\n", sanfen(0, 1000)); } return 0;}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~