博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CF535E Tavas and Pashmaks
阅读量:4703 次
发布时间:2019-06-10

本文共 1524 字,大约阅读时间需要 5 分钟。

链接

  • 给定二元组\((a,b)\),对于每一个\((a,b)\)询问是否存在\((A,B)\),使得\(\frac {A}{a}+\frac {B}{b}\)在所有元素中最小,\(a,b\)实数,\(n\leq10^5\)
  • 首先\(A,B\)的具体取值是没有要求的,我们只关心\(\frac {A}{B}\)
  • 化简一下,有\[z=\frac {\frac {A}{B}}{a_i}+ \frac {1}{b_i}\]
  • \(\frac {A}{B}=x\),有\[y=\frac {x}{a_i} + \frac {1}{b_i}\]
  • 所以问题转化成,给出\(n\)条直线,询问是否存在一个\(x\)使得对应直线\(y\)取值最小。
  • 维护一个下凸壳即可。
  • 注意这个斜率不能直接求,精度会炸裂,要这样:
    \[k=\frac {\frac {1}{b_j}-\frac {1}{b_i}}{\frac {1}{a_i}-\frac {1}{a_j}}\]
    \[=\frac {a_i*a_j*(b_i-b_j)}{b_i*b_j*(a_j-a_i)}\]
  • 这样的精度就会好一点。
#include
#define R register int#define ll long long#define db long doubleusing namespace std;const int N=500001;int n,tot,len,tp,ans[N];vector
G[N];struct Qs{int u,v,id;}w[N],Q[N],STK[N];int cmp(const Qs &x,const Qs &y){ if(x.u==y.u)return x.v>y.v; return x.u
'9')&&c!='-')c=getchar(); if(c=='-')k=-1,c=getchar(); while(c>='0'&&c<='9')x=(x<<3)+(x<<1)+c-'0',c=getchar(); return x*k;}db sol(Qs x,Qs y){ db fz=(db)x.u*y.u*(x.v-y.v); db fm=(db)x.v*y.v*(y.u-x.u); return fz/fm;}int main(){ freopen("slay.in","r",stdin); freopen("slay.out","w",stdout); n=gi(); for(R i=1;i<=n;++i)w[i]=(Qs){gi(),gi(),i}; sort(w+1,w+n+1,cmp); for(R i=1,j=1;i<=n;i=j=j+1){ while(j
1&&sol(STK[tp],STK[tp-1])>sol(Q[i],STK[tp-1]))--tp; STK[++tp]=Q[i]; } for (R i=1;i<=tp;++i) if (i==tp||sol(STK[i],STK[i+1])>0){ R x=STK[i].id; for(R i=0,sz=G[x].size();i

转载于:https://www.cnblogs.com/Tyher/p/9818115.html

你可能感兴趣的文章
【 henuacm2016级暑期训练-动态规划专题 A 】Cards
查看>>
第五篇:白话tornado源码之褪去模板的外衣
查看>>
设备常用框架framework
查看>>
bootstrap模态框和select2合用时input无法获取焦点(转)
查看>>
MockObject
查看>>
BZOJ4516: [Sdoi2016]生成魔咒(后缀自动机)
查看>>
查看手机已经记住的WIFI密码
查看>>
最新版IntelliJ IDEA2019 破解教程(2019.08.07-情人节更新)
查看>>
C# 两个datatable中的数据快速比较返回交集或差集
查看>>
关于oracle样例数据库emp、dept、salgrade的mysql脚本复杂查询分析
查看>>
adb shell am 的用法
查看>>
iOS10 UI教程视图和子视图的可见性
查看>>
FindChildControl与FindComponent
查看>>
中国城市json
查看>>
android下载手动下载Android SDK
查看>>
C++学习:任意合法状态下汉诺塔的移动(原创)
查看>>
leetcode133 - Clone Graph - medium
查看>>
一点小基础
查看>>
UNET学习笔记2 - 高级API(HLAPI)
查看>>
"ORA-00942: 表或视图不存在 "的原因和解决方法[转]
查看>>