问题 A: Kill

时间限制: 1 Sec  内存限制: 256 MB

题面


题面谢绝公开。

题解


80%算法

赛时并没有想到正解,而是选择了另一种正确性较对的贪心验证。

对于每一个怪,我们定义它的权值为到结算点的距离。

二分答案,对于每一个人,考虑他能打的所有怪,选择权值最大的怪去打。这样可以尽量将权值小的怪留给后面的人。

然而这样会挂掉。考虑假如结算点在中间,右边怪少人多,左边怪多人少,

而左边一个距离结算点比较近的人可能会抢掉右边一个怪,造成答案不优。

复杂度$O(nmlog)$

100%算法

正解二分加贪心验证。对人的位置和怪的位置分别排序。

二分最终答案。check的时候顺序扫每一个人,顺序打怪即可。可以保证每个人都有怪打。

复杂度$O(nlog)$

代码:

#include<bits/stdc++.h>
#define rint register int
#define ll long long
#define read(A) A=init()
using namespace std;
inline int init()
{
int a=,b=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')b=-;ch=getchar();}
while(ch>=''&&ch<=''){a=(a<<)+(a<<)+ch-'';ch=getchar();}
return a*b;
}
int n,m,s,ans=0x7fffffff;
int p[],q[],w[];
bool vis[];
inline ll get_dis(int x,int y)
{
return 1ll*abs(q[y]-p[x])+abs(q[y]-s);
}
inline bool check(ll mid)
{
int j=;
for(rint i=;i<=n;++i)
{
while(j<=m)
{
if(get_dis(i,j)<=mid){j++;break;}
j++;
}
if((j==m+)&&(i<n))
return false;
if((j==m+)&&(i==n)&&get_dis(n,m)>mid)
return false;
}
return true;
}
int main()
{
read(n),read(m),read(s);
for(rint i=;i<=n;++i)read(p[i]);
for(rint i=;i<=m;++i)read(q[i]);
ll l=,r=0x7fffffffffffffff;
sort(p+,p+n+);sort(q+,q+m+);
while(l<=r)
{
ll mid=(l+r)>>;
if(!check(mid))l=mid+;
else r=mid-;
}
printf("%lld\n",l);
return ;
}

「题解」:Kill的更多相关文章

  1. 「题解」「美团 CodeM 资格赛」跳格子

    目录 「题解」「美团 CodeM 资格赛」跳格子 题目描述 考场思路 思路分析及正解代码 「题解」「美团 CodeM 资格赛」跳格子 今天真的考自闭了... \(T1\) 花了 \(2h\) 都没有搞 ...

  2. 「题解」「HNOI2013」切糕

    文章目录 「题解」「HNOI2013」切糕 题目描述 思路分析及代码 题目分析 题解及代码 「题解」「HNOI2013」切糕 题目描述 点这里 思路分析及代码 题目分析 这道题的题目可以说得上是史上最 ...

  3. 「题解」JOIOI 王国

    「题解」JOIOI 王国 题目描述 考场思考 正解 题目描述 点这里 考场思考 因为时间不太够了,直接一上来就着手暴力.但是本人太菜,居然暴力爆 000 ,然后当场自闭- 一气之下,发现对 60pts ...

  4. 「题解」:[loj2763][JOI2013]现代豪宅

    问题 A: 现代豪宅 时间限制: 1 Sec  内存限制: 256 MB 题面 题目描述 (题目译自 $JOI 2013 Final T3$「現代的な屋敷」) 你在某个很大的豪宅里迷路了.这个豪宅由东 ...

  5. 「题解」:$Six$

    问题 A: Six 时间限制: 1 Sec  内存限制: 512 MB 题面 题面谢绝公开. 题解 来写一篇正经的题解. 每一个数对于答案的贡献与数本身无关,只与它包含了哪几个质因数有关. 所以考虑二 ...

  6. 「题解」:$Smooth$

    问题 A: Smooth 时间限制: 1 Sec  内存限制: 512 MB 题面 题面谢绝公开. 题解 维护一个队列,开15个指针,对应前15个素数. 对于每一次添加数字,暴扫15个指针,将指针对应 ...

  7. 「题解」:y

    问题 B: y 时间限制: 1 Sec  内存限制: 256 MB 题面 题面谢绝公开. 题解 考虑双向搜索. 定义$cal_{i,j,k}$表示当前已经搜索状态中是否存在长度为i,终点为j,搜索过边 ...

  8. 「题解」:x

    问题 A: x 时间限制: 1 Sec  内存限制: 256 MB 题面 题面谢绝公开. 题解 赛时想到了正解并且对拍了很久.对拍没挂,但是评测姬表示我w0了……一脸懵逼. 不难证明,如果对于两个数字 ...

  9. 「题解」:07.16NOIP模拟T1:礼物

    问题 A: 礼物 时间限制: 1 Sec  内存限制: 256 MB 题面 题目描述 夏川的生日就要到了.作为夏川形式上的男朋友,季堂打算给夏川买一些生 日礼物. 商店里一共有种礼物.夏川每得到一种礼 ...

随机推荐

  1. IntelliJ IDEA 添加本地xsd文件

    地址: http://code.alibabatech.com/schema/dubbo/dubbo.xsd

  2. 如何设置和使用MacOS上的Microsoft Office套件

    自30年前首次发布以来,Microsoft Office已成为全球最受欢迎的生产力套件之一.借助Word和Excel for Mac之类的程序,毫无疑问,MS Office套件在任何计算机上都是必须下 ...

  3. spring boot 四大组件之Actuator

    执行器(Actuator)的定义 执行器是一个制造业术语,指的是用于移动或控制东西的一个机械装置,一个很小的改变就能让执行器产生大量的运动.An actuator is a manufacturing ...

  4. UnixBench算分介绍

    关于如何用UnixBench,介绍文章很多,这里就不展开了.这里重点描述下它是如何算分的. 运行参数 碰到很多客户,装好后,直接./Run,就把结果跑出来了,然后还只取最后一个分值,比谁高谁低.下面列 ...

  5. JCF——set

    HashSet LinkedHashSet TreeSet 联系与区别

  6. NX二次开发-BlockUI的Tree树控件

    关于BlockUI的Tree树控件只要研究UGOPEN里西门子官方的那个例子在结合去查NXOPEN的帮助基本就可以了.[不过我是看唐工的视频学会的,没办法自己领悟性不太强] //=========== ...

  7. 16、使用jQuery的html5player播放器,进行播放

    <!-- Website Design By: www.happyworm.com --> <title>Demo : jPlayer as a video playlist ...

  8. Netty 源码学习——EventLoop

    Netty 源码学习--EventLoop 在前面 Netty 源码学习--客户端流程分析中我们已经知道了一个 EventLoop 大概的流程,这一章我们来详细的看一看. NioEventLoopGr ...

  9. ActionContext 与 ServletActionContext获取Session的异同

    1. ActionContext 在Struts2开发中,除了将请求参数自动设置到Action的字段中,我们往往也需要在Action里直接获取请求(Request)或会话(Session)的一些信息, ...

  10. 记录百度编辑器bug(在编辑框输入光标到达页面最底部时,功能区块会悬浮在页面最顶部并且与编辑框分离)

    解决方案: //加入这段CSS#edui1_toolbarbox { position: relative !important; }