当前位置: 首页 > news >正文

题解:P5017 [NOIP2018 普及组] 摆渡车

这道题乍一看,很多人(包括我)就会想到贪心。

但是我们仔细想一下,正着贪心(也就是摆渡车能开就开)这个是不行的。那倒着贪心呢(也就是让最后一个人不等待,然后一直往前推 \(m\) 时刻)?也不行,这里有一个反例。

4 5
1 1 1 5

正确输出

1

第二种贪心方式的输出

12

所以我们用到了 DP,状态设计起来还是比较简单的。

我们令 \(t\) 为上一次摆渡车开走的时间,摆渡车没有开走过 \(t\) 就等于 \(1\)。再令 \(f_i\) 表示在 \(i\) 时刻摆渡车开走了,\(t \sim i\) 时刻的同学的等待时间。

那么转移为 $$f_i \gets min_{t\le i-m}(f_i,f_t+[t+1]\sim i)$$。

AC code:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 201000;
int n, m, t[N], dp[N], s1[N], s2[N], cnt[N];
int main() {scanf("%d%d", &n, &m);for (int i = 1; i <= n; i++) {scanf("%d", &t[i]);t[i] += 1;}sort(t + 1, t + n + 1);for (int i = 1; i <= n; i++)if (t[i] - t[i - 1] >= 2 * m) {int c = t[i] - t[i - 1] - 2 * m;for (int j = i; j <= n; j++)t[j] -= c;}int T = t[n] + m;for (int i = 1; i <= n; i++)cnt[t[i]]++;for (int i = 1; i <= T; i++) {s1[i] = s1[i - 1] + cnt[i];s2[i] = s2[i - 1] + i * cnt[i];}int ans = 1 << 30;for (int i = 1; i <= T; i++) {dp[i] = i * s1[i] - s2[i];for (int j = i - m; j >= 1 && j >= i - 2 * m + 1; j--)dp[i] = min(dp[i], dp[j] + i * (s1[i] - s1[j]) - (s2[i] - s2[j]));if (i >= t[n])ans = min(ans, dp[i]);}printf("%d", ans);
}
http://www.rkmt.cn/news/198223.html

相关文章:

  • 跨境电商客服系统:不同国家客户听到本地化语音
  • 【Linux命令大全】002.文件传输之lprm命令(实操篇)
  • 【赵渝强老师】国产金仓数据库的表空间
  • 【Linux命令大全】002.文件传输之lpr命令(实操篇)
  • 图书馆闭馆提醒:温柔语音取代刺耳铃声
  • 灵遁者:春华秋实年复年,青丝渐成雪满巅
  • 矿山安全监控系统:危险区域进入时触发语音警告
  • 雾霾指数语音提醒:环保部门发布空气质量通知
  • 建筑工地安全广播:每日开工前自动播放注意事项
  • PyWebIO上传下载功能隐藏用法大揭秘:99%新手不知道的2个核心参数
  • 题解:P7073 [CSP-J2020] 表达式
  • PyWebIO文件管理全解析(高级技巧曝光):让上传下载更安全高效的秘诀
  • 题解:P14304 【MX-J27-T1】分块
  • DC宇宙蝙蝠洞通讯:戈登局长接到AI生成警报
  • Python 3D图形开发必知(视角控制技术全公开)
  • 外卖骑手接单提示音:VoxCPM-1.5-TTS定制专属提醒语调
  • 体育赛事比分更新:观众无需看屏也能掌握赛况
  • 心理咨询陪伴机器人:VoxCPM-1.5-TTS营造温暖对话氛围
  • 导师推荐9个AI论文写作软件,专科生轻松搞定毕业论文!
  • 动漫角色语音克隆:粉丝自制作品也能拥有原版声线
  • ChromeDriver下载地址汇总?不如先了解VoxCPM-1.5-TTS部署依赖
  • 双指针专题(五):灵活的起跳——「无重复字符的最长子串」
  • 幼儿园亲子留言系统:孩子录音转文字再转语音回家播放
  • 家族族谱语音记录:后代子孙聆听祖先奋斗历程
  • FastAPI跨域问题深度解析(预检请求避坑宝典)
  • HuggingFace镜像网站同步更新VoxCPM-1.5-TTS最新版本
  • 揭秘NiceGUI输入校验陷阱:5个你必须掌握的防御性编程技巧
  • PyWebIO文件处理实战(从入门到精通):解决90%开发者遇到的上传难题
  • 【高并发必看】FastAPI限流最佳实践:3个真实线上案例深度剖析
  • X射线检测技术:多领域关键应用与性能发展趋势解析