首页 > 其他分享 >P1883 【模板】三分 | 函数

P1883 【模板】三分 | 函数

时间:2024-04-07 22:46:07浏览次数:27  
标签:const get int double P1883 mid1 模板 三分

原题链接

题解

1.首先,\(F(x)\) 图像一定是 下凹的,怎么证明我也不知道,只是感觉是这样
2.既然是下凹的,那么一定有最小值,区间内找极大值/极小值可以用三分
B站有个视频直观地讲解了,一看便知
还有一些小细节,请看讨论区

code

#include <bits/stdc++.h>
using namespace std;

const int N = 1000010;
const double eps=1e-9;
double a[N],b[N],c[N];
int t;
int n;

double get(double mid)
{
	double mi=-11451411;
	for(int i=1;i<=n;i++) mi=max(mi,a[i]*mid*mid+b[i]*mid+c[i]);
	return mi;
}
int main()
{
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		for(int i=1;i<=n;i++) scanf("%lf%lf%lf",&a[i],&b[i],&c[i]);
		double l=0.0000,r=1000.0000,best=-1;
		while(r-l>eps)
		{
			double mid1=l+(r-l)/3.00;
			double mid2=r-(r-l)/3.00;
			if(get(mid1)<get(mid2)) best=mid1,r=mid2;
			else best=mid2,l=mid1;
		}
		printf("%.4lf\n",get(best));
	}
}  

标签:const,get,int,double,P1883,mid1,模板,三分
From: https://www.cnblogs.com/pure4knowledge/p/18120091

相关文章

  • P7771 【模板】欧拉路径
    原题链接题解链式前向星版本的欧拉回路dfsvoiddfs(intu){for(inti=head[u];i>0;i=head[u]){head[u]=Next[i];//走过的路直接跳过dfs(to[i]);}que[l++]=u;}接下来的难点是如何字典序搜索。我们在dfs的时候直接让走字典序最小的边即......
  • 倍增(LCA与ST表)附详细讲解博客路劲以及洛谷模板题
    前置知识--倍增倍增算法,顾名思义,就是不断地翻倍。虽然是一种基础算法,但它能够使得线性的处理转化为对数级的处理,大大地优化时间复杂度,在很多算法中都有应用,其中最常见的就是ST表以及LCA(树上最近公共祖先)了。学习博客:算法学习笔记(12):ST表-知乎(zhihu.com)for(intx=......
  • 线段树模板
    #include<iostream>#include<map>#include<algorithm>#include<math.h>usingnamespacestd;/*3372*/typedeflonglongll;constintN=1e5+10;lla[N]={0};lltree[N<<2]={0};lltag[N<<2]={0};llls(......
  • P1439 【模板】最长公共子序列
    题面:回顾下最长公共子序列:if(a[i]!=b[j])dp[i][j]=max(dp[i-1][j],dp[i][j-1]);elsedp[i][j]=dp[i-1][j-1]+1;复杂度为O(n^2)但是这题不行,数据卡到了1e5,所以应该再次观察:注意到是两个全排列,那么利用map,把第一个序列当作基准列,做等效替换:把原来的值替换成1,2,3.........
  • 最长上升子序列LIS模板
    参考链接:https://blog.csdn.net/lxt_Lucia/article/details/81206439#include<iostream>#include<vector>#include<algorithm>#include<math.h>#include<sstream>#include<string>#include<string.h>#include<iomanip>......
  • C111【模板】莫队算法 P2709 小B的询问
    视频链接:C111【模板】莫队算法P2709小B的询问_哔哩哔哩_bilibili   LuoguP2709小B的询问//普通莫队O(n*sqrt(n))#include<iostream>#include<cstring>#include<algorithm>#include<cmath>usingnamespacestd;constintN=50005;intn,m,k,B,a[N];......
  • 帝国CMS模板源码整站安装说明
    安装步骤第一步:先把得到的文件解压缩,把文件通过FTP传到空间里。(请不要把类似ecms014.cncobo.com这个文件夹传到FTP,请传这个大文件夹下面的所有文件夹和文件到空间根目录,请不要上传到2级目录,除非你自己会改模板CSS和JS调用相对地址!)第二步:浏览器键入你的域名或者IP/e/install/inde......
  • django渲染模板与vue的语法冲突解决Flask框架默认WSGI:Werkzeug
    django渲染模板与vue的语法冲突解决Flask框架默认WSGI:Werkzeug Python来说,它有很多web框架,常见的有jango、Flask、Tornado、sanic等,比如Odoo、Superset都基于Flask框架进行开发的开源平台,具有强大的功能。在Linux下,默认使用的WSGIServer一般为Gunicorn,它是一个比较出名的We......
  • P5960 【模板】差分约束
    原题链接题解我一直苦苦思考为什么要建边,现在我明白了,如果令\(x_i\)代表离源点的最短路径长度的话,建边之后,\(x_i-x_j<=y_k\)一定成立只有当出现负环的时候说明条件出现了矛盾太神了code#include<bits/stdc++.h>usingnamespacestd;queue<int>q;intin_q[5005]={0};......
  • nodejs中使用Nunjucks 模板引擎
    要在Koa2中使用Nunjucks模板引擎,你需要进行一些额外的设置。以下是一个示例代码,演示了如何在Koa2中集成Nunjucks:首先,确保已经安装了Koa和Nunjucks:npminstallkoanunjucks然后,在项目中创建一个名为app.js的文件,并添加以下代码:constKoa=require('koa');con......