题目描述:
  站台的长度是 L L,星之船最左侧的门称为第 11 个门,对于满足 1≤i≤N 1≤i≤N 的整数,星之船的第 i i 个门与第 11 个门之间的距离是 Di D_i,并且有 0=D1<D2<…<DN−1<DN≤L 0=D_1。站台上有 M M 个乘客,对于满足 1≤i≤M1≤i≤M 的整数,第 i i 个乘客距离站台左边缘的距离为 PiP_i,那么有 0≤P1≤P2≤…≤PM≤L 0≤P_1≤P_2≤…≤P_M≤L。如果星之船停在 S S 这个位置,也就是说星之船的第 11 个门正对着站台的位置距离站台左边缘的距离是 S S,那么由于所有的门都要正对站台,显然有 0≤S≤L−DN0≤S≤L−D_N。此时,星之船的第 i i 个门正对站台的位置就是 S+DiS+D_i。
  如果第 i i 个乘客从第 jj 个门上车,由于星之船的体积巨大,门的大小可以忽略不计,那么他需要的时间就是 |Dj+S−Pi| |Dj+S−Pi|。当然,所有的乘客都会选择需要时间最小的门上车。lqr目测了下一个停靠站台的情况,请你帮助她计算使得所有乘客上车时间最长的停靠位置 S S,以及此时所有乘客上车所需的时间总和。
数据范围:
0<L≤109,M≤300,N≤3000<L≤109,M≤300,N≤3000
题解:
   L <script type="math/tex" id="MathJax-Element-6025">L</script> 很长,所以不能枚举每一个点,考虑有哪些必要枚举的点。可以证明只要枚举每个乘客在两个站点中点和车在最左和最右的位置就能找到解。考虑一个最优解车不在最左和最右位置并且没有乘客在两站点中点,那么每个乘客都有一个确定上车的门,我们对于每一个乘客找到使他能够多走一点的方向(就是他上的门的反向),对于两个方向,必然有一个方向能使乘客走的总路程至少不减,直到移到边缘或有人移到两站中点。

#include<bits/stdc++.h>
typedef long long ll;
const int N = 305;
int n, m, cnt;
ll L, P[N], D[N], S[N * N * 2];
void add(int x) {if (x >= 0 && x <= L - D[n]) S[++cnt] = x;}
int main() {scanf("%lld%d", &L, &m); L <<= 1;for (int i = 1; i <= m; i++)scanf("%lld", &P[i]), P[i] <<= 1;scanf("%d", &n);for (int i = 2; i <= n; i++)scanf("%lld", &D[i]), D[i] <<= 1;for (int i = 1; i <= m; i++)for (int j = 1; j < n; j++)add(P[i] - (D[j] + D[j + 1]) / 2);add(0); add(L - D[n]);std::sort(S + 1, S + cnt + 1);ll ans = 0, det;for (int k = 1; k <= cnt; k++) {int p = 1;ll tans = 0;for (int i = 1; i <= m; i++) {while (p < n && abs(D[p + 1] + S[k] - P[i]) < abs(D[p] + S[k] - P[i])) p++;tans += abs(D[p] + S[k] - P[i]);}if (tans > ans)ans = tans,det = S[k];}printf("%.1f %.1f\n", det * 0.5, ans * 0.5);return 0;
}

如有侵权,请联系作者删除。

日常训练 20170612 星之船相关推荐

  1. codeforces日常训练 C. Cutting Out - 二分搜索答案

    codeforces日常训练 C. Cutting Out - 二分搜索答案 题干 You are given an array s consisting of n integers. You hav ...

  2. 南海今日开海!星舆船载定位终端助力千帆平安出海

    16日中午12时, 今年为期三个半月的南海伏季休渔期正式结束. 广东阳江.湛江.揭阳.广西北海等多个渔港, 大批渔船扬帆起航,奔赴远洋. 为了迎接开渔,当地海洋综合执法部门也派出了执法快艇不停穿梭于渔 ...

  3. 「日常训练」Common Subexpression Elimination(UVa-12219)

    今天做的题目就是抱佛脚2333 懂的都懂. 这条题目干了好几天,最后还是参考别人的代码敲出来了,但是自己独立思考了两天多,还是有收获的. 思路分析 做这条题我是先按照之前的那条题目(The SetSt ...

  4. 「日常训练」 Mike and Fun (CFR305D2B)

    题意(CodeForces 548B) 每次对01矩阵中的一位取反,问每次操作后,单列中最长连续1的长度. 分析 非常非常简单,但是我当时训练的时候WA了四次...无力吐槽了,人间 不值得.jpg 代 ...

  5. 动规日常训练题解 难度普及+

    9.6 动规训练  题解 ----Frosty_Jackal 定义Dpmax[i][j] 表示l~r之间最大的得分,由题意得拆环为链,将1~n的枚举范围扩大到1~2*n ,外层枚举区间长,内层枚举l, ...

  6. 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)

    题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...

  7. 「日常训练」Skills(Codeforce Round #339 Div.2 D)

    题意(CodeForces 614D) 每个人有\(n(n\le 10^5)\)个技能,技能等级都在\([0,10^9]\)的范围,每个技能有一个当前等级,所有技能的最高等级都为A.一个人的力量被记做 ...

  8. 「日常训练」Alternative Thinking(Codeforces Round #334 Div.2 C)

    题意与分析 (CodeForces - 603A) 这题真的做的我头疼的不得了,各种构造样例去分析性质... 题意是这样的:给出01字符串.可以在这个字符串中选择一个起点和一个终点使得这个连续区间内所 ...

  9. 2018集训队日常训练1

    5385: 树的遍历  Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByte Total Submit: 22       ...

最新文章

  1. 程序媛眼中的程序猿原来是这样子的!
  2. 利用反射动态调用类成员C#
  3. 大一c语言学生信息管理系统课程设计
  4. gromacs 安装_带你入门带你飞 gromacs材料计算模拟系列
  5. mysql 5.5免安装配置_mysql的参考文档mysql5.5.21免安装版的配置方法
  6. iRobot 的 30 年成长史
  7. 项不会计算为接受 0 个参数的函数_玩转excel函数:详解四种计数函数,从基础到提高...
  8. SSN3SL16A 华为SDH全新原包装STM-16光接口板
  9. (连载0.1)实践报告:在深度系统用Python3对上市公司年度报告财务报表进行提取
  10. 光模块调式总结(SFP)
  11. 学了这么多年精益思想,居然不知道还有第八种浪费 | IDCF
  12. 中文地址识别api的使用测试,快递地址自动补全,自动识别省市区,地址清洗,到底哪个好用?
  13. 惠普bios硬重置_惠普笔记本电脑BIOS恢复【五个免费修复步骤】
  14. 重学React基础知识整理——组件间的另类通信“插槽”(五)
  15. java jframe 切换_java – 在JFrame中切换面板
  16. 苏宁易购不易购,遭遇临时涨价、一月未送货
  17. java多线程并发之旅-09-java 生产者消费者 Producer/Consumer 模式
  18. 从头到尾彻底理解傅里叶变换算法
  19. (二) OGNet 论文笔记
  20. 基于JAVA的TCP网络QQ聊天工具系统

热门文章

  1. pads单位切换的快捷键_PADS软件中常用的快捷键和命令操作方法解析
  2. i春秋CTF训练营Rotated!解题思路及其过程。
  3. springboot直接使用阿里的镜像来下载包
  4. 团队激励-马斯洛需求层次理论
  5. linux用sz下载文件夹,linux下我要用sz下载整个文件夹到底要怎么做!服了
  6. 华为招聘 笔试题记录1---繁忙的棋牌室
  7. 带4g无线的高性能服务器,全网通还是4G?做一个智能4G的全网通简直完美!
  8. 第十四章:0.96寸OLED12864显示屏
  9. ansible模块--archive模块
  10. 【论文】知识图谱简单问答(单跳)挑战、技术和趋势综述