题目链接

题意

  有 $n$ 个同学在等车,每位同学从某时刻开始等车,相邻两趟车之间至少间隔 $m$ 分钟。凯凯可以任意安排发车时间,求所有同学等车时间之和的最小值。

分析

  这题首先能想到是动态规划

  很明显先要对每个人开始等待的时间进行排序

  如果设 $f[i]$ 为前 $i$ 个人都已离开的最少等车时间,由于这样做发车时间与每个人上车时间不好确定,所以考虑加一维

  设 $f[i][j]$ 为第 $i$ 个人等待的第 $j$ 分钟时,前 $i$ 个人都已恰好离开时的最少等车时间之和

  我们可以枚举 $i$ 和 $j$,同时对 $i$ 后面的同学的值进行更新

  此时第 $k \, (k>i)$ 个人等车的时间 $now$ 为 $max(t[i]+j+m-t[k],0)$

  所以 $f[k][now]=f[i][j]+\sum\limits_{x=i+1}^k (now+t[k]-t[x])$

  但是求和又会增加一维时间复杂度,于是可以先预处理出 $t[i]$ 的前缀和 $s[i]$

  然后 $f[k][now]=f[i][j]+(now+t[k]) \times (k-i)-(s[k]-s[i])$

  最后在 $n$ 位同学都已离开的情况中找出最小值

  时间复杂度为 $O(n^2 m)$,但实际上要比这个小很多

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <cmath>
using namespace std;
#define ll long long
#define inf 0x3f3f3f3f
#define N 505 int n, m, ans = inf;
int t[N], s[N], f[N][N]; int main() {
scanf("%d%d", &n, &m);
for (int i = ; i <= n; i++)
scanf("%d", t + i);
sort(t + , t + n + );
for (int i = ; i <= n; i++)
s[i] = s[i - ] + t[i];
t[] = -inf;
memset(f, 0x3f, sizeof f);
f[][] = ;
for (int i = ; i <= n; i++) {
int mj = min(m - , t[i + ] - t[i]);
for (int j = ; j <= mj; j++)
if (f[i][j] != inf)
for (int k = ; i + k <= n; k++) {
int now = max(t[i] + j + m - t[i + k], );
f[i + k][now] = min(f[i + k][now],
f[i][j] + (t[i + k] + now) * k - (s[i + k] - s[i]));
}
}
for (int i = ; i < m; i++)
ans = min(ans, f[n][i]);
printf("%d\n", ans); return ;
}

[NOIP2018(PJ)] 摆渡车的更多相关文章

  1. NOIp2018 pj 滚粗记

    NOIp2018 pj 滚粗记 考前 一个午觉睡完就到了考场 考中 \(T1\)水题切了 \(T2\)水题切了 \(T3\)好像是\(dp\),不会,先跳 \(T4\)像树上莫队一样,然后再欧拉序上面 ...

  2. 「洛谷5017」「NOIP2018」摆渡车【DP,经典好题】

    前言 在考场被这个题搞自闭了,那个时候自己是真的太菜了.qwq 现在水平稍微高了一点,就过来切一下这一道\(DP\)经典好题. 附加一个题目链接:[洛谷] 正文 虽然题目非常的简短,但是解法有很多. ...

  3. [NOIP2018 PJ T4]对称二叉树

    题目大意:问一棵有根带权二叉树中最大的对称二叉树子树,对称二叉树为需满足将这棵树所有节点的左右子树交换,新树和原树对应位置的结构相同且点权相等. 题解:在对称二叉树中,对于深度相同的两个节点$u,v$ ...

  4. [Noip2018普及]摆渡车

    生涯回忆录彻底摸了...反正也没啥人看( 过几天要给普及组神犇讲课就寻思做一点普及题,然后差点被锤爆,, 题在luogu上找的https://www.luogu.org/problemnew/show ...

  5. 「学习笔记」动态规划 I『初识DP』

    写在前面 注意:此文章仅供参考,如发现有误请及时告知. 更新日期:2018/3/16,2018/12/03 动态规划介绍 动态规划,简称DP(Dynamic Programming) 简介1 简介2 ...

  6. 【游记】CSp2020

    同步发表于洛谷博客 初赛 Day -2 做了个模拟(非洛谷),只有一丁点分,显然过不了 (盗张 i am ak f 的图) Day 0 颓,颓,颓,又做了一套模拟,坚定了退役的信心. Day 1 人好 ...

  7. 我的获奖记录及 Important Dates in OI

    逊逊的获奖记录/ruo(真的没拿过啥奖,并且大部分都集中在初三阶段,即 2020-2021 赛季): NOIP2018 pj,1=,无游记 CSP-S2019,1=,无游记 APIO2020,Ag,游 ...

  8. P5017 [NOIP2018 普及组] 摆渡车

    P5017 [NOIP2018 普及组] 摆渡车 题目 P5017 思路 将实际问题抽象后,不难发现这是一个 区间 \(DP\) 我们不妨认为时间是一条数轴,每名同学按照到达时刻分别对应数轴上可能重合 ...

  9. [NOIP2018]摆渡车

    Description: 有 n 名同学要乘坐摆渡车从人大附中前往人民大学,第 i位同学在第 t 分钟去 等车.只有一辆摆渡车在工作,但摆渡车容量可以视为无限大.摆渡车从人大附中出发. 把车上的同学送 ...

随机推荐

  1. SpringCloud(一)

    什么是SpringCloud? Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消息总线.负载均 ...

  2. Android日期时间控件DatePickerDialog和TimePickerDialog

    1.DatePickerDialog 在一些万年历.日程表等APP上我们经常可以看到日期选择控件,由于很少有用户会老老实实的手工输入日期,所以该控件的作用就是为了控制用户的输入格式,在Android中 ...

  3. JAVA8List排序,(升序,倒序)

    List<Integer> integerList = Arrays.asList(4, 5, 2, 3, 7, 9); List<Integer> collect = int ...

  4. win10修改jupyter notebook默认路径

    安装anaconda3 ,因此自带jupyter notebook 发送到jupyter notebook到桌面快捷方式 右击属性,将目标的%USERPROFILE%,修该为自己需要的路径 起始位置修 ...

  5. Joomla 3.0.0 --> 3.4.6-RCE复现

    Joomla是一款网站管理系统CMS,最近曝出其3.00-3.4.6的joomla版本存在一个RCE漏洞. 并且大佬已将exp放在了github上,下载地址:https://www.exploit-d ...

  6. springMVC请求访问的整个过程

    //以上个随笔(springMVC项目配置文件)为基础,详述springMVC请求的整个过程流向 web.xml                                            ...

  7. P1462 通往奥格瑞玛的道路【二分+Dij】

    P1462 通往奥格瑞玛的道路 提交 29.89k 通过 6.88k 时间限制 1.00s 内存限制 125.00MB 题目提供者gconeice 难度提高+/省选- 历史分数100 提交记录 查看题 ...

  8. Python学习笔记三:数据特征分析

    完成数据清理后,下面通过图表展开对数据的分析. 1.前期初判(分布分析): 1)判断分组区间: # a.散点图:plt.scatter(data[字段1],data['字段2'], s = data[ ...

  9. LeetCode longest substring without repeating characters 题解 Hash表

    题目 Given a string, find the length of the longest substring without repeating characters. Example 1: ...

  10. k8s获取apiversion下面的对应可用资源

    1- 获取api命令 [注:以下命令的url地址http://127.0.0.1/为k8s master的地址] kubectl api-versions 输出内容如下: apps/v1beta1 a ...