题目传送门

解题思路:

个人感觉DP这东西,只可意会,不可言传

AC代码:

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm> using namespace std; long long n,m,t[],f[][],ans = 0x3f3f3f3f3f,mi; int main() {
scanf("%lld%lld",&n,&m);
for(int i = ;i <= n; i++)
scanf("%lld",&t[i]),mi = mi < t[i] ? mi : t[i];
for(int i = ;i <= n; i++) t[i] -= mi;
sort(t+,t+n+);
memset(f,0x3f,sizeof(f));
for(int i = ;i < * m; i++) f[][i] = i;
for(int i = ;i < n; i++)
for(int j = ;j < * m; j++) {
if(f[i][j] < 0x3f3f3f3f3f3f3f3f) {
if(t[i] + j >= t[i+])
f[i+][t[i]+j-t[i+]] = min(f[i+][t[i]+j-t[i+]],f[i][j]+j+t[i]-t[i+]);
for(int k = t[i] + j + m >= t[i+] ? : t[i+] - t[i] - j - m;t[i] + j + m + k - t[i+] < * m; k++)
if(t[i] + j + k + m >= t[i+])
f[i+][t[i]+j+k+m-t[i+]] = min(f[i+][t[i]+j+k+m-t[i+]],f[i][j]+t[i]+j+m+k-t[i+]);
if(t[i] + j + m < t[i+])
for(int k = ;k < m * ; k++)
f[i+][k] = min(f[i+][k],f[i][j] + k);
}
}
for(int i = ;i < m * ; i++)
ans = min(ans,f[n][i]);
printf("%lld",ans);
return ;
}

//NOIP2018普及 T3

洛谷 P5017 摆渡车的更多相关文章

  1. NOIp2018普及组T3暨洛谷P5017 摆渡车:题解

    题目链接:https://www.luogu.org/problemnew/show/P5017 emm,这次的真的不简单的,T3比T4难? 醉了... 蒟蒻肯定没有其他大佬讲的好啊,但肯定尽力,真的 ...

  2. 洛谷P5017摆渡车

    题目 一道做法多种多样的题,DP做法的状态也很多. 我用\(dp[i]\)表示在第i秒发车的时间和,然后dp方程就很好写了 \(dp[i] = dp[j] + i车的等待时间\)j属于i-2m ~ i ...

  3. 洛谷P5017:摆渡车——题解

    https://www.luogu.org/problem/P5017 参考:https://www.luogu.org/blog/ztyluogucpp/solution-p5017 我想我大概是废 ...

  4. 【洛谷 P5017】 摆渡车(斜率优化)

    题目链接 算是巩固了一下斜率优化吧. 设\(f[i]\)表示前\(i\)分钟最少等待时间. 则有\(f[i]=\min_{j=0}^{i-m}f[j]+(cnt[i]-cnt[j])*i-(sum[i ...

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

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

  6. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

  7. 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.

    没有上司的舞会  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...

  8. 洛谷P1108 低价购买[DP | LIS方案数]

    题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...

  9. 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP

    题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...

随机推荐

  1. CSS根据屏幕分辨率宽度自动适应的办法

    CSS根据屏幕分辨率宽度自动适应的办法 第一种办法是js选择CSS <SCRIPT language=JavaScript><!-- Beginif (screen.width == ...

  2. POJ-3629 模拟

    A - Card Stacking Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u S ...

  3. 吴裕雄--天生自然TensorFlow2教程:张量排序

    import tensorflow as tf a = tf.random.shuffle(tf.range(5)) a tf.sort(a, direction='DESCENDING') # 返回 ...

  4. 学习spring的第二天

    对昨天的查漏:关于<bean>标签的scope属性,是由它决定原型和单例的,而不是说你java代码中用到了单例模式就是单例了. 其二就是lazy-init属性,它对于scope=" ...

  5. 【Linux】Linux中的网络命令

    dig命令:是常用的域名查询工具,可以用来测试域名系统工作是否正常. 语法: dig(选项)(参数) [root@localhost tmp]# dig http://oa.kingnet.com ; ...

  6. 理解python中的'*','*args','**','**kwargs'

    本文来源:http://blog.csdn.net/callinglove/article/details/45483097 让我们通过以下6步来理解: 1. 通过一个函数调用来理解’*’的作用 2. ...

  7. shell计数

    cat 20171015_datarecord.txt| awk -F '_' '{a[$1]++} END {for (i in a) {print i,a[i]|"sort -k 2&q ...

  8. 阿里云服务器搭建详解——Ubuntu

    由于自己电脑配置跟不上,双系统一开,整个电脑就会变得非常卡顿,所以决定在阿里云买一个云服务器.听朋友说,学生买的话是非常便宜的,比每月开个SVIP还便宜.今天上网看了下,果然如此,每月只要9.9,确实 ...

  9. {转}理解HTTP/304响应

    源文(英):http://www.telerik.com/blogs/understanding-http-304-responses 中文译文:http://www.cnblogs.com/ziyu ...

  10. HTML5 可缩放矢量图形(1)—SVG基础

    参考文档1 SVG基础 SVG介绍 概念:SVG 是使用 XML 来描述二维图形和绘图程序的语言.(理解就是一个在网页上使用笔画图的过程) 什么是SVG SVG 指可伸缩矢量图形 (Scalable ...