3203: [Sdoi2013]保护出题人 凸包+三分
来源:互联网 发布:中国p2p网贷行业数据 编辑:程序博客网 时间:2024/05/29 19:17
膜IOI爷的题解
凸包上三分。。
#include<iostream>#include<cstdio>#define N 100105using namespace std;int n,top,stack[N];double d;double sum[N],x[N];struct node {double x,y;} a[N];double cross(node a,node b,node c){ return (a.x-c.x)*(b.y-c.y)-(b.x-c.x)*(a.y-c.y);}double slop(node a,node b){ return (a.y-b.y)/(a.x-b.x);}double find(node t){ int l=1,r=top,lmid,rmid; while (r-l>=3) { lmid=l+(r-l)/3; rmid=r-(r-l)/3; double K1=slop(a[stack[lmid]],t),K2=slop(a[stack[rmid]],t); if (K1<K2) l=lmid; else r=rmid; } double ans=0.0; for (int i=l;i<=r;i++) ans=max(ans,slop(a[stack[i]],t)); return ans;}int main(){ scanf("%d%lf",&n,&d); for (int i=1;i<=n;i++) { scanf("%lf%lf",&sum[i],&x[i]); sum[i]+=sum[i-1]; a[i]=(node){i*d,sum[i-1]}; } double ans=0; for (int i=1;i<=n;i++) { while (top>1&&cross(a[i],a[stack[top]],a[stack[top-1]])>=0) top--; stack[++top]=i; node q=(node){x[i]+i*d,sum[i]}; ans+=find(q); } printf("%.0lf\n",ans); return 0;}
1 0
- BZOJ 3203 Sdoi2013 保护出题人 凸包+三分
- 3203: [Sdoi2013]保护出题人 凸包+三分
- 3203: [Sdoi2013]保护出题人|三分|凸包
- [BZOJ3203][SDOI2013][凸包][三分]保护出题人
- 【BZOJ】【P3203】【Sdoi2013】【保护出题人】【题解】【凸包+三分】
- [BZOJ3203]-[Sdoi2013]保护出题人-凸包+三分
- [BZOJ]3203 [SDOI2013] 保护出题人 三分
- [凸包 三分 数形结合] BZOJ 3203 [Sdoi2013]保护出题人
- 【bzoj3203】【保护出题人】【凸包+三分】
- 【bzoj3203】[Sdoi2013]保护出题人 凸包+三分法
- [Sdoi2013]保护出题人
- 【SDOI2013】保护出题人
- 【SDOI2013】保护出题人
- BZOJ 3203: [Sdoi2013]保护出题人
- 【SDOI2013】【BZOJ3203】保护出题人
- [bzoj3203][SDOI2013]保护出题人
- bzoj3203【SDOI2013】保护出题人
- BZOJ3203 [Sdoi2013]保护出题人
- 195 - Tenth Line
- CPU中的三类总线
- Java 集合框架
- unity3d上用vuforia开发AR
- 答群友问:Java静态内部类、普通内部类等的理解
- 3203: [Sdoi2013]保护出题人 凸包+三分
- JAVA_java静态导入
- python实现简单爬虫抓取图片
- 蓝桥杯 算法提高 学霸的迷宫 (BFS 路径存储)
- UI进阶——数据请求
- opengl
- 亲密接触Redis-第二天(Redis Sentinel)
- webapi Get Post
- Graceful Restart in Golang