Daxia & Yayamao's problem

FZU - 2239

题解:f(x)=A*x+B
如果j>k,Aj>Ak,Aj*x+Bj>=Ak*x+Bk,则(Bj-Bk)/(Aj-Ak)>=-x
说明如果j要比k优,那么斜率一定要大于-x,根据斜率优化,这样就需要构建上凸包

构建完凸包后,再用三分找最优点即可

#include<cstdio>
#include<algorithm>
using namespace std;
const int MX = 1e5 + 5;
typedef long long LL;
struct node{LL x,y;node(){}node(LL X,LL Y){x=X;y=Y;}node operator-(node _A){return node(x-_A.x,y-_A.y);}LL operator^(node _A){return x*_A.y-y*_A.x;}
}p[MX];
bool cmp(node p1,node p2){if(p1.x!=p2.x) return p1.x<p2.x;return p1.y<p2.y;
}
void convex(int &n){int cnt=0;for(int i=1;i<=n;i++){while(cnt>=2&&((p[i]-p[cnt])^(p[cnt]-p[cnt-1]))<=0) cnt--;p[++cnt]=p[i];}n=cnt;
}
LL f(int i,LL k){return p[i].x*k+p[i].y;
}
int main(){LL x;int n,m;// freopen("in.txt","r",stdin);while(~scanf("%d%d",&n,&m)){for(int i=1;i<=n;i++) scanf("%I64d%I64d",&p[i].x,&p[i].y);sort(p+1,p+n+1,cmp);convex(n);    //构建凸包for(int i=1;i<=m;i++){scanf("%I64d",&x);int l=1,r=n;//三分找最优点while(l<r){int mid=l+(r-l)/3;int midr=r-(r-l)/3;if(f(mid,x)<f(midr,x)) l=mid+1;else r=midr-1;}printf("%I64d\n",max(f(l,x),f(r,x)));}}return 0;
}

FZU-2239 Daxia Yayamao's problem(斜率优化)相关推荐

  1. FZU 2239 Daxia Yayamao's problem 斜率优化

    题目链接点这里 我们先把a从小到大排序,询问x从小到大排序 我们可以发现,对于某对 ai和a(i+1)..如果我们有xi,此时取a(i+1)可以使xi的函数值最大的话,那么对于任意大于xi的x,取a( ...

  2. fzu 2238 Daxia Wzc's problem

    Problem 2238 Daxia & Wzc's problem Accept: 38    Submit: 136 Time Limit: 1000 mSec    Memory Lim ...

  3. FZU 2238 - Daxia Wzc's problem(Lucas)

    Problem 2238 Daxia & Wzc's problem Accept: 42    Submit: 166 Time Limit: 1000 mSec    Memory Lim ...

  4. FZU 2240 Daxia Suneast's problem

    博弈,$SG$函数,规律,线段树. 这个问题套路很明显,先找求出$SG$函数值是多少,然后异或起来,如果是$0$就后手赢,否则先手赢.修改操作和区间查询的话可以用线段树维护一下区间异或和. 数据那么大 ...

  5. FZU 2238 Daxia Wzc's problem

    Daxia在2016年5月期间去瑞士度蜜月,顺便拜访了Wzc,Wzc给他出了一个问题: Wzc给Daxia等差数列A(0),告诉Daxia首项a和公差d; 首先让Daxia求出数列A(0)前n项和,得 ...

  6. FZU 2238 Daxia Wzc's problem【规律+lucas】

    Daxia在2016年5月期间去瑞士度蜜月,顺便拜访了Wzc,Wzc给他出了一个问题: Wzc给Daxia等差数列A(0),告诉Daxia首项a和公差d; 首先让Daxia求出数列A(0)前n项和,得 ...

  7. hdu 2993 MAX Average Problem 斜率优化DP

    详见,算法合集之<浅谈数形结合思想在信息学竞赛中的应用>. #include<cstdio> #include<cstring> #include<algor ...

  8. FZU Problem 2238 Daxia Wzc's problem(Lucas定理求组合数)

    此文章可以使用目录功能哟↑(点击上方[+])  FZU Problem 2238 Daxia & Wzc's problem Accept: 0    Submit: 0 Time Limit ...

  9. FZU Problem 2240 Daxia Suneast's problem(博弈+[单点更新,区间查询]线段树)

    此文章可以使用目录功能哟↑(点击上方[+])  FZU Problem 2240 Daxia & Suneast's problem Accept: 0    Submit: 0 Time L ...

最新文章

  1. Python使用sklearn构建ElasticNet回归模型并指定样本权重:即构建带样本权重(sample_weight)的回归模型
  2. java_Socket简单使用方法
  3. vxe-table安装和使用
  4. live2dviewer android,live2dviewerex安卓版
  5. jQuery事件绑定函数:on()与bind()的差别
  6. 如何分析竟争网站和优秀网站的设计风格
  7. linuxcnc 多轴联动_科学网—【LinuxCNC】开源机床Linux操作系统 - 刘洋的博文
  8. matlab迭代算法实例_智能优化算法及其MATLAB实例-免疫算法笔记
  9. 《Python编程初学者指南》——第1章 启程:Game Over程序 1.1 剖析Game Over程序
  10. Newtonsoft.Json.Compact
  11. 《黑客攻防技术宝典:系统实战篇(第2版)》目录
  12. H3C S5500V2交换机误格式化恢复
  13. Windows下QT5.9构建的debug或release文件打包后不能使用
  14. 小米运动蓝牙耳机重新配对_小米运动蓝牙耳机怎么连接手机
  15. 张亚勤退休百度:一个耐人寻味的微笑
  16. 论文写作笔记1:医学跨计算机期刊介绍
  17. 四年级下册计算机工作计划,四年级下册信息技术教学计划
  18. 用HTML+CSS+JS做一个漂亮的个人网页
  19. linux 守护进程小结
  20. html中奇数偶数判断,js中判断奇数或偶数

热门文章

  1. 企业境外投资可直接用人民币
  2. calico的CrashLoopBackOff 解决办法
  3. 51单片机学习过程中的常见疑惑
  4. 微信支付提示支付验证签名失败
  5. 权重衰退的原理(正则化技术之一)
  6. 2023年天府杯全国大学生数学建模竞赛B题中国环境问题的治理解题全过程
  7. dxf里的组码,以及圆与直线绘制
  8. 内存修改器 android,Android 内存修改
  9. 小程序基础组价(二)
  10. 超赞 | 从写简历到面试,这是一份AI公司应聘全面指南