题目大意:太长自己看
令sumi表示第i个僵尸以及之前的僵尸的体力总和。disi表示第i个僵尸与房屋的初始距离
我们发现我们能消灭一个僵尸当且仅当y>=sumidisi
那么我们要求的显然就是max{sumidisi}
我们将一个僵尸抽象成一个点sumidisi。那么我们发现每一个回合僵尸之间的相对位置是不变的
因此我们能够维护一个凸包。三分就可以

#include <cstdio>
#include <cstring>
#include <iomanip>
#include <iostream>
#include <algorithm>
#define M 100100
#define EPS 1e-7
using namespace std;
typedef long double ld;
struct Point{ld x,y;Point() {}Point(ld _,ld __):x(_),y(__) {}friend ld Get_Slope(const Point &p1,const Point &p2){return (p1.y-p2.y)/(p1.x-p2.x);}
}O,stack[M];int top;
int n;
long long d,a[M],sum[M];
ld ans;
void Insert(const Point &p)
{while( top>=2 && Get_Slope(stack[top-1],stack[top]) >= Get_Slope(stack[top],p) - EPS )top--;stack[++top]=p;
}
ld Trisection()
{int i,l=1,r=top;while(r-l>=3){int l_mid=(l+l+r)/3,r_mid=(l+r+r)/3;ld _l=Get_Slope(stack[l_mid],O);ld _r=Get_Slope(stack[r_mid],O);if(_l>_r)r=r_mid;elsel=l_mid; }ld re=0;for(i=l;i<=r;i++)re=max(re,Get_Slope(stack[i],O));return re;
}
int main()
{int i;long long x;cin>>n>>d;for(i=1;i<=n;i++){#ifdef PoPoQQQscanf("%I64d%I64d",&a[i],&x);#elsescanf("%lld%lld",&a[i],&x);#endifsum[i]=sum[i-1]+a[i];Insert(Point(i*d,sum[i-1]));O=Point(i*d+x,sum[i]);ans+=Trisection();}cout<<fixed<<setprecision(0)<<ans<<endl;return 0;
}

BZOJ 3203 Sdoi2013 保护出题人 凸包+三分相关推荐

  1. [BZOJ3203][SDOI2013]保护出题人(凸包+三分)

    https://www.cnblogs.com/Skyminer/p/6435544.html 先不要急于转化成几何模型,先把式子化到底再对应到几何图形中去. 1 #include<cstdio ...

  2. BZOJ 3203 Luogu P3299 [SDOI2013]保护出题人 (凸包、斜率优化、二分)

    惊了,我怎么这么菜啊.. 题目链接: (bzoj)https://www.lydsy.com/JudgeOnline/problem.php?id=3203 (luogu)https://www.lu ...

  3. bzoj3203 [Sdoi2013]保护出题人 凸包+二分

    一开始以为丧尸可以挡伤害,然后发现这个题目的设定非常** 然后就考虑每个丧尸到门口的时间,由于伤害是继承的,所以前缀和分配 然后答案=Σ(HP前缀和*速度/距离)  设 HP/l=k ,l=x+nd ...

  4. [bzoj3203][SDOI2013]保护出题人

    3203: [Sdoi2013]保护出题人 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 389 Solved: 218 [Submit][Status ...

  5. bzoj3203: [Sdoi2013]保护出题人

    我三分这么好吗居然1A啦???提交的时候只是想着先WA一次的.... 这题真的很妙啊 首先第一步,就是把僵尸的生命值取一个前缀和,这样造成伤害的时候,可以视为同时对所有僵尸造成伤害. 那么就可以得到一 ...

  6. [选拔赛1]花园(矩阵快速幂),JM的月亮神树(最短路),保护出题人(斜率优化)

    多年不考试,一夜回到解放前 T1:花园 title solution code T2:月亮神树 title solution code T3:保护出题人 title solution code T1: ...

  7. BZOJ 3203 sdoi 2013 保护出题人

    由于样例解释很清晰,所以很容易得到以下结论: 1.每一关都是独立的,且僵尸的相对位置不会变 2.每一关的攻击力=Max(sum(i)/dis(i)) 其实sum(i)是僵尸攻击力的前缀和,dis(i) ...

  8. 谁来保护商务人士的数据安全?

    谁来保护商务人士的数据安全? 文/阿祥       提到笔记本电脑的数据安全,自然就会想到企业的商业机密.       毫不夸张地说,商业机密关系到一个企业的生死存亡,一旦泄漏就会给竞争对手提供可乘之 ...

  9. BAT华为美团头条面试考什么?这份GitHub万星资源,告诉你面试题+答案+出题人分析...

    铜灵 发自 凹非寺 量子位 出品 | 公众号 QbitAI 2020校招脚步临近,怎样备战即将到来的面试,在众多面试者中脱颖而出惊艳到面试官,化身大厂Offer收割机? GitHub上就有这样一个万星 ...

最新文章

  1. matlab浮点运算的误差,MATLAB的eps,浮点数相对精度
  2. php 获取企业号用户,微信企业号 获取用户信息(示例代码)
  3. 为什么需要使用到多线程
  4. ssh 三者集合的思想
  5. haproxy服务启动命令_安装haproxy和haproxy命令
  6. Tiny6410上安装debian基本系统的过程
  7. java第一阶段知识_第一阶段 Java语言(下)
  8. html加入购物车的动画,vue实现加入购物车动画
  9. 《零基础》MySQL 连接的使用(二十)
  10. java内存分配模型优点_高并发实战(二)-并发基础 缓存 MESI 内存模型
  11. java 内存管理 知乎_[知乎]Java 语言的 GC 为什么不实时释放内存?
  12. Hive找出所有科目成绩都大于某一学科平均成绩的学生
  13. 雷军说马云骗子、柳传志弃投百度、王兴骂滴滴垃圾…14位大佬悔不当初
  14. Entity Framework 6+ 连接Mysql
  15. 2021-08-27 BERT4Rec简介
  16. 2022年java开发面试题整理合集
  17. 抖音超火的罗马时钟html代码,最近抖音上挺火的圆形文字时钟
  18. 玩转小米盒子1:选购指南及应用推荐
  19. 自由手写体字帖pdf_行楷钢笔字帖下载-行楷字帖电子版pdf版 - 极光下载站
  20. 微信小程序登录界面的实现

热门文章

  1. netty半包粘包 处理_老王:Netty到底是个什么鬼?有没有简单的理解方式?
  2. java class object_[java]Class类和Object类的关系
  3. redis的hyperloglog用法
  4. shared_ptr,weak_ptr使用最广范的智能指针
  5. python面部颜色分析_Python图像处理之颜色的定义与使用分析
  6. c语言用梯形法计算积分,c语言用梯形法求积分
  7. vue 指令 v-bind
  8. PyPA Packaging Python Projects
  9. opencv-api boundingRect
  10. 阿里分布式数据库服务实践