题目链接

loj#2015. 「SCOI2016」妖怪

题解

对于每一项展开

的到\(atk+\frac{dnf}{b}a + dnf + \frac{atk}{a} b\)

令$T = \frac{a}{b} $

原式$=atk+Tdnf + dnf + \frac{atk}{T} $

这就是那个单峰的对勾函数,

把单峰函数复合为求最值,发现也是个单峰函数(下凸壳)

三分就好了

或者维护一个最大值得下凸壳

代码

#include<cstdio>
#include<algorithm> inline int read() {
int x = 0,f = 1;
char c = getchar();
while(c < '0' || c > '9') c = getchar();
while(c <= '9' && c >= '0') x = x * 10 + c - '0',c = getchar();
return x * f;
}
#define db double
const int maxn = 5000007; db atk[maxn],dnf[maxn];
int n;
db calc(db T) {
double ret = 0.0;
for(int i = 1;i <= n;++ i) {
db tmp = dnf[i] + atk[i] + dnf[i] / T + atk[i] * T;
ret = std::max(tmp,ret);
}
return ret;
}
int main() {
n = read();
for(int i = 1;i <= n;++ i)
scanf("%lf%lf",atk + i,dnf + i);
db l = 0,r = 10.0;
for(;r - l >= (1e-12);) {
db m1 = l + (r - l) / 3.0,m2 = r - (r - l) / 3.0;
db c1 = calc(m1),c2 = calc(m2);
if(c1 > c2) l = m1;
else r = m2;
}
printf("%.4lf\n",std::min(calc(r),calc(l))) ;
return 0;
}

loj#2015. 「SCOI2016」妖怪 凸函数/三分的更多相关文章

  1. LOJ#2015. 「SCOI2016」妖怪(凸包)

    传送门 首先可以把每个妖怪看成二维平面上的一个点,那么每一个环境\((a,b)\)就可以看成一条斜率\(k=-\frac{b}{a}\)的过该点的直线,战斗力就是这条直线在两坐标轴上的截距之和 对于每 ...

  2. 【LOJ】 #2015. 「SCOI2016」妖怪

    题解 这道题教会我很多东西,虽然它是个傻逼三分 1.long double的运算常数是巨大的 2.三分之前的界要算对!一定要算准,不要想一个直接写上! 3.三分100次也就只能把精度往里推20多位,可 ...

  3. 「SCOI2016」妖怪 解题报告

    「SCOI2016」妖怪 玄妙...盲猜一个结论,然后过了,事后一证,然后假了,数据真水 首先要最小化 \[ \max_{i=1}^n (1+k)x_i+(1+\frac{1}{k})y_i \] \ ...

  4. loj#2013. 「SCOI2016」幸运数字 点分治/线性基

    题目链接 loj#2013. 「SCOI2016」幸运数字 题解 和树上路径有管...点分治吧 把询问挂到点上 求出重心后,求出重心到每个点路径上的数的线性基 对于重心为lca的合并寻味,否则标记下传 ...

  5. loj#2016. 「SCOI2016」美味

    题目链接 loj#2016. 「SCOI2016」美味 题解 对于不带x的怎么做....可持久化trie树 对于带x,和trie树一样贪心 对于答案的二进制位,从高往低位贪心, 二进制可以表示所有的数 ...

  6. loj#2012. 「SCOI2016」背单词

    题目链接 loj#2012. 「SCOI2016」背单词 题解 题面描述有点不清楚. 考虑贪心 type1的花费一定不会是优的,不考虑, 所以先把后缀填进去,对于反串建trie树, 先填父亲再填儿子, ...

  7. loj #2013. 「SCOI2016」幸运数字

    #2013. 「SCOI2016」幸运数字 题目描述 A 国共有 n nn 座城市,这些城市由 n−1 n - 1n−1 条道路相连,使得任意两座城市可以互达,且路径唯一.每座城市都有一个幸运数字,以 ...

  8. LOJ #2013「SCOI2016」幸运数字

    时限为什么这么大啊 明摆着放多$ log$的做法过啊$QAQ$ LOJ #2013 题意 有$ Q$次询问,每次询问树上一条链,点有点权,你需要选择一些链上的点使得异或和尽量大 点数$ \leq 2* ...

  9. LOJ#2014「SCOI2016」萌萌哒(倍增,并查集优化连边)

    题面 点此看题 题意很明白,就不转述了吧. 题解 题目相当于告诉了我们若干等量关系,每个限制 l 1 , r 1 , l 2 , r 2 \tt l_1,r_1,l_2,r_2 l1​,r1​,l2​ ...

随机推荐

  1. 【vim】删除标记内部的文字 di[标记]

    当我开始使用 Vim 时,一件我总是想很方便做的事情是如何轻松的删除方括号或圆括号里的内容.转到开始的标记,然后使用下面的语法: di[标记] 比如,把光标放在开始的圆括号上,使用下面的命令来删除圆括 ...

  2. [ VB ] OrElse, AndAlso [ C# ] ||, && 运算符

    条件演算子も当然のように C# と VB では記述方法が異なる.比較すると下表のようになる. VB              C#OrElse        ||AndAlso     &&a ...

  3. JS实现双击内容变为可编辑状态

    在一些网站上我们经常看到交互性很强的功能.一些用户资料可以直接双击出现文本框,并在此输入新的资料即可修改,无需再按确定按钮等.. 我在网上查了很多资料,但都有一个小bug,就是当获取焦点后,光标的位置 ...

  4. Qt Ubuntu 编译出错-1: error: 找不到 -lGL

    安装好,编译界面程序出错“-1: error: 找不到 -lGL” 在终端运行如下命令(安装Qt5.8.0) sudo apt-get install libqt5-dev sudo apt-get ...

  5. saltstack自动化运维系列④之saltstack的命令返回结果mysql数据库写入

    saltstack自动化运维系列④之saltstack的命令返回结果mysql数据库写入salt的返回值写入mysql数据库:可参考:https://docs.saltstack.com/en/lat ...

  6. 转载:获取Nginx源码(1.3.5)《深入理解Nginx》(陶辉)

    原文:https://book.2cto.com/201304/19616.html 可以在Nginx官方网站(http://nginx.org/en/download.html)获取Nginx源码包 ...

  7. ArrayList源码分析笔记(jdk1.8)

    1.特点: ArrayList 是一个动态数组,它是线程不安全的,允许元素为null 可重复,插入有序 读写快,增删慢 扩容:默认容量 10,默认扩容1.5倍 建议指定容量大小,减少扩容带来的性能消耗 ...

  8. [转] php die()与exit()的区别实例详解

    1 前言 php中die()与exit()的真正区别是什么因,我们百度一下发现die是退出并释放内存,exit是退出但不释放内存了,那么真的是这样吗,需要的朋友可以参考下 2 正文 网上搜索die与e ...

  9. bert中的分词

    直接把自己的工作文档导入的,由于是在外企工作,所以都是英文写的 chinese and english tokens result input: "我爱中国",tokens:[&q ...

  10. SQL中的 if 结构和循环(while)结构