一开始以为丧尸可以挡伤害,然后发现这个题目的设定非常**

然后就考虑每个丧尸到门口的时间,由于伤害是继承的,所以前缀和分配

然后答案=Σ(HP前缀和*速度/距离)  设 HP/l=k ,l=x+nd   由于后面的点向后和向上的距离一样,所以两点间的斜率一样

HP=k(x+nd)

设Y=HP,X=x+nd  ,则要求对一个 点b=0的最大斜率 ,根据上面的结论可以维护上凸包

注意在栈上二分l和r是相反的顺序,注意10^12

码:

#include<iostream>
#include<cstdio>
using namespace std;
int zz,i,ans,l,r,xh[100005];
long long n,d;
double xx[100005],x,y,daan,qsum[100005];
double xl(double x,double y,double xx,double yy)
{return (y-yy)/(x-xx);
}
int main()
{
scanf("%lld%lld",&n,&d);
for(i=1;i<=n;i++)
{
scanf("%lf%lf",&y,&x);
qsum[i]=qsum[i-1]+y;
while(zz>=2&&xl(x,y,x+(i-xh[zz])*d,qsum[i]-qsum[xh[zz]-1])<=xl(x,y,x+(i-xh[zz-1])*d,qsum[i]-qsum[xh[zz-1]-1]))
zz--;
xh[++zz]=i;
xh[zz+1]=i;l=1;r=zz;while(l<r){
int mid=(l+r)>>1;
if(xl(0,0,x+(i-xh[mid])*d,qsum[i]-qsum[xh[mid]-1])<xl(x+(i-xh[mid+1])*d,qsum[i]-qsum[xh[mid+1]-1],0,0))
{
l=mid+1;}else     r=mid;}
daan+=max(xl(0,0,x+(i-xh[l])*d,qsum[i]-qsum[xh[l]-1]),xl(0,0,x+(i-xh[zz])*d,qsum[i]-qsum[xh[zz]-1]));
}   printf("%.0lf",daan);
}

bzoj3203 [Sdoi2013]保护出题人 凸包+二分相关推荐

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

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

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

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

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

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

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

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

  5. BZOJ 3203 Sdoi2013 保护出题人 凸包+三分

    题目大意:太长自己看 令sumi表示第i个僵尸以及之前的僵尸的体力总和.disi表示第i个僵尸与房屋的初始距离 我们发现我们能消灭一个僵尸当且仅当y>=sumidisi 那么我们要求的显然就是m ...

  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. 2019上半年阿里,腾讯,百度,美团,头条等技术面试题目,以及答案,专家出题人分析汇总...

    一.阿里篇 1.1.1 如何实现一个高效的单向链表逆序输出? 1.1.2 已知sqrt(2)约等于1.414,要求不用数学库,求sqrt(2)精确到小数点后10位 1.1.3 给定一个二叉搜索树(BS ...

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

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

最新文章

  1. 属于python文件的操作有_Python的文件操作
  2. c++多态相关面试题
  3. MySQL授权用户及密码恢复设置
  4. 可选和对象:空指针救星!
  5. Activity 半透明样式
  6. android减少动态效果,【技巧】手机运行变慢?试试这些办法!
  7. 数值分析(3)-多项式插值: 牛顿插值法
  8. 国庆蓝牙耳机最强选购攻略,2020不容错过的精品蓝牙耳机
  9. 方维众筹1.61 php5.5,最新方维众筹1.61完美解密版源码 综合型众筹产品+理财+公益+股权+微信+商城+PC+WAP运营版...
  10. 游戏开发记录--敌人追寻玩家
  11. 微信JS-SDK分享(TS版)
  12. 恒达高停车场信息管理系统的分析与设计
  13. TRY HACK ME | INTERNAL「渗透测试挑战02」
  14. 阻止某个程序上网-------防止孩子看抖音快手等视频网站
  15. shell脚本监控网站是否正常
  16. ⚡豆瓣告诉你《扫黑风暴》如何【短评爬取+词云】 ⚡
  17. python写入csv文件中添加行_在python中为csv文件输出键添加值
  18. python_pandas操作-数值上下滑动一个格
  19. [附源码]Java计算机毕业设计SSM菜鸟驿站快递分发系统
  20. 【ACM程序设计实验】高分课程实验报告分享

热门文章

  1. jenkins linux 发邮件,jenkins——邮件配置
  2. SpringBoot和Elasticsearch集成
  3. dnf超时空漩涡副本路线流程图_DNF超时空漩涡机制
  4. 如何读取tensorboard文件 展现可视化
  5. 什么是map评测指标
  6. 识别图片噪声干扰_射频相位噪声介绍
  7. 油猴脚本使用waitForKeyElements报错eslint: no-undef - `waitForKeyElements` is not defined
  8. python文件のpandas操作
  9. tomcat下多个app 不同的图标_iOS平台设计规范(五)图标与图片
  10. rpc 服务器不可用_什么是远程过程调用RPC