洛谷 P5017 摆渡车
题目传送门
解题思路:
个人感觉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 摆渡车的更多相关文章
- NOIp2018普及组T3暨洛谷P5017 摆渡车:题解
题目链接:https://www.luogu.org/problemnew/show/P5017 emm,这次的真的不简单的,T3比T4难? 醉了... 蒟蒻肯定没有其他大佬讲的好啊,但肯定尽力,真的 ...
- 洛谷P5017摆渡车
题目 一道做法多种多样的题,DP做法的状态也很多. 我用\(dp[i]\)表示在第i秒发车的时间和,然后dp方程就很好写了 \(dp[i] = dp[j] + i车的等待时间\)j属于i-2m ~ i ...
- 洛谷P5017:摆渡车——题解
https://www.luogu.org/problem/P5017 参考:https://www.luogu.org/blog/ztyluogucpp/solution-p5017 我想我大概是废 ...
- 【洛谷 P5017】 摆渡车(斜率优化)
题目链接 算是巩固了一下斜率优化吧. 设\(f[i]\)表示前\(i\)分钟最少等待时间. 则有\(f[i]=\min_{j=0}^{i-m}f[j]+(cnt[i]-cnt[j])*i-(sum[i ...
- 「洛谷5017」「NOIP2018」摆渡车【DP,经典好题】
前言 在考场被这个题搞自闭了,那个时候自己是真的太菜了.qwq 现在水平稍微高了一点,就过来切一下这一道\(DP\)经典好题. 附加一个题目链接:[洛谷] 正文 虽然题目非常的简短,但是解法有很多. ...
- 洛谷1640 bzoj1854游戏 匈牙利就是又短又快
bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...
- 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.
没有上司的舞会 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...
- 洛谷P1108 低价购买[DP | LIS方案数]
题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...
- 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP
题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...
随机推荐
- CSS根据屏幕分辨率宽度自动适应的办法
CSS根据屏幕分辨率宽度自动适应的办法 第一种办法是js选择CSS <SCRIPT language=JavaScript><!-- Beginif (screen.width == ...
- POJ-3629 模拟
A - Card Stacking Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u S ...
- 吴裕雄--天生自然TensorFlow2教程:张量排序
import tensorflow as tf a = tf.random.shuffle(tf.range(5)) a tf.sort(a, direction='DESCENDING') # 返回 ...
- 学习spring的第二天
对昨天的查漏:关于<bean>标签的scope属性,是由它决定原型和单例的,而不是说你java代码中用到了单例模式就是单例了. 其二就是lazy-init属性,它对于scope=" ...
- 【Linux】Linux中的网络命令
dig命令:是常用的域名查询工具,可以用来测试域名系统工作是否正常. 语法: dig(选项)(参数) [root@localhost tmp]# dig http://oa.kingnet.com ; ...
- 理解python中的'*','*args','**','**kwargs'
本文来源:http://blog.csdn.net/callinglove/article/details/45483097 让我们通过以下6步来理解: 1. 通过一个函数调用来理解’*’的作用 2. ...
- shell计数
cat 20171015_datarecord.txt| awk -F '_' '{a[$1]++} END {for (i in a) {print i,a[i]|"sort -k 2&q ...
- 阿里云服务器搭建详解——Ubuntu
由于自己电脑配置跟不上,双系统一开,整个电脑就会变得非常卡顿,所以决定在阿里云买一个云服务器.听朋友说,学生买的话是非常便宜的,比每月开个SVIP还便宜.今天上网看了下,果然如此,每月只要9.9,确实 ...
- {转}理解HTTP/304响应
源文(英):http://www.telerik.com/blogs/understanding-http-304-responses 中文译文:http://www.cnblogs.com/ziyu ...
- HTML5 可缩放矢量图形(1)—SVG基础
参考文档1 SVG基础 SVG介绍 概念:SVG 是使用 XML 来描述二维图形和绘图程序的语言.(理解就是一个在网页上使用笔画图的过程) 什么是SVG SVG 指可伸缩矢量图形 (Scalable ...