BZOJ 3203 Sdoi2013 保护出题人 凸包+三分
题目大意:太长自己看
令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 保护出题人 凸包+三分相关推荐
- [BZOJ3203][SDOI2013]保护出题人(凸包+三分)
https://www.cnblogs.com/Skyminer/p/6435544.html 先不要急于转化成几何模型,先把式子化到底再对应到几何图形中去. 1 #include<cstdio ...
- BZOJ 3203 Luogu P3299 [SDOI2013]保护出题人 (凸包、斜率优化、二分)
惊了,我怎么这么菜啊.. 题目链接: (bzoj)https://www.lydsy.com/JudgeOnline/problem.php?id=3203 (luogu)https://www.lu ...
- bzoj3203 [Sdoi2013]保护出题人 凸包+二分
一开始以为丧尸可以挡伤害,然后发现这个题目的设定非常** 然后就考虑每个丧尸到门口的时间,由于伤害是继承的,所以前缀和分配 然后答案=Σ(HP前缀和*速度/距离) 设 HP/l=k ,l=x+nd ...
- [bzoj3203][SDOI2013]保护出题人
3203: [Sdoi2013]保护出题人 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 389 Solved: 218 [Submit][Status ...
- bzoj3203: [Sdoi2013]保护出题人
我三分这么好吗居然1A啦???提交的时候只是想着先WA一次的.... 这题真的很妙啊 首先第一步,就是把僵尸的生命值取一个前缀和,这样造成伤害的时候,可以视为同时对所有僵尸造成伤害. 那么就可以得到一 ...
- [选拔赛1]花园(矩阵快速幂),JM的月亮神树(最短路),保护出题人(斜率优化)
多年不考试,一夜回到解放前 T1:花园 title solution code T2:月亮神树 title solution code T3:保护出题人 title solution code T1: ...
- BZOJ 3203 sdoi 2013 保护出题人
由于样例解释很清晰,所以很容易得到以下结论: 1.每一关都是独立的,且僵尸的相对位置不会变 2.每一关的攻击力=Max(sum(i)/dis(i)) 其实sum(i)是僵尸攻击力的前缀和,dis(i) ...
- 谁来保护商务人士的数据安全?
谁来保护商务人士的数据安全? 文/阿祥 提到笔记本电脑的数据安全,自然就会想到企业的商业机密. 毫不夸张地说,商业机密关系到一个企业的生死存亡,一旦泄漏就会给竞争对手提供可乘之 ...
- BAT华为美团头条面试考什么?这份GitHub万星资源,告诉你面试题+答案+出题人分析...
铜灵 发自 凹非寺 量子位 出品 | 公众号 QbitAI 2020校招脚步临近,怎样备战即将到来的面试,在众多面试者中脱颖而出惊艳到面试官,化身大厂Offer收割机? GitHub上就有这样一个万星 ...
最新文章
- matlab浮点运算的误差,MATLAB的eps,浮点数相对精度
- php 获取企业号用户,微信企业号 获取用户信息(示例代码)
- 为什么需要使用到多线程
- ssh 三者集合的思想
- haproxy服务启动命令_安装haproxy和haproxy命令
- Tiny6410上安装debian基本系统的过程
- java第一阶段知识_第一阶段 Java语言(下)
- html加入购物车的动画,vue实现加入购物车动画
- 《零基础》MySQL 连接的使用(二十)
- java内存分配模型优点_高并发实战(二)-并发基础 缓存 MESI 内存模型
- java 内存管理 知乎_[知乎]Java 语言的 GC 为什么不实时释放内存?
- Hive找出所有科目成绩都大于某一学科平均成绩的学生
- 雷军说马云骗子、柳传志弃投百度、王兴骂滴滴垃圾…14位大佬悔不当初
- Entity Framework 6+ 连接Mysql
- 2021-08-27 BERT4Rec简介
- 2022年java开发面试题整理合集
- 抖音超火的罗马时钟html代码,最近抖音上挺火的圆形文字时钟
- 玩转小米盒子1:选购指南及应用推荐
- 自由手写体字帖pdf_行楷钢笔字帖下载-行楷字帖电子版pdf版 - 极光下载站
- 微信小程序登录界面的实现
热门文章
- netty半包粘包 处理_老王:Netty到底是个什么鬼?有没有简单的理解方式?
- java class object_[java]Class类和Object类的关系
- redis的hyperloglog用法
- shared_ptr,weak_ptr使用最广范的智能指针
- python面部颜色分析_Python图像处理之颜色的定义与使用分析
- c语言用梯形法计算积分,c语言用梯形法求积分
- vue 指令 v-bind
- PyPA Packaging Python Projects
- opencv-api boundingRect
- 阿里分布式数据库服务实践