HDU-4526 威威猫系列故事——拼车记 动态规划
分析:该题有2个地方要注意:所有的车要么不坐要么就坐满,这个贪心策略很容易证明是正确的,还有一点就是最后一辆车除外。
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std; const int MaX = ;
int N, K, D, S;
struct Node {
int ti;
int qz;
}seq[MaX];
int dp[MaX][MaX];
// dp[i][j]表示第i台车来的时候,等候人数为j时的最少开销 void solve() {
memset(dp, 0xff, sizeof (dp));
dp[][N] = ; // 初始化
for (int i = ; i <= K; ++i) {
const int &ti = seq[i].ti;
const int &qz = seq[i].qz;
for (int j = ; j <= N; ++j) {
if (dp[i-][j] != -) dp[i][j] = dp[i-][j] + j*(ti-seq[i-].ti); // 不乘坐
if (j == ) { // 最后一辆车可能不能坐满
for (int k = ; k <= qz; ++k) {
if (k <= N && dp[i-][k] != -) {
if (dp[i][] == -) {
dp[i][] = D + dp[i-][k] + k*(ti-seq[i-].ti);
} else {
dp[i][] = min(dp[i][], D + dp[i-][k] + k*(ti-seq[i-].ti));
}
}
}
} else {
if ((j+qz) <= N && dp[i-][j+qz] != -) {
if (dp[i][j] == -) {
dp[i][j] = D + dp[i-][j+qz] + (j+qz)*(ti-seq[i-].ti);
} else {
dp[i][j] = min(dp[i][j], D + dp[i-][j+qz] + (j+qz)*(ti-seq[i-].ti));
}
}
}
}
}
printf("%d\n", dp[K][]);
} int main() {
int T;
scanf("%d", &T);
while (T--) {
scanf("%d %d %d %d", &N, &K, &D, &S);
int sum = ;
for (int i = ; i <= K; ++i) {
scanf("%d %d", &seq[i].ti, &seq[i].qz);
sum += seq[i].qz;
}
if (sum < N) {
puts("impossible");
continue;
}
solve();
}
return ;
}
HDU-4526 威威猫系列故事——拼车记 动态规划的更多相关文章
- hdoj 4526 威威猫系列故事——拼车记
威威猫系列故事——拼车记 Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ...
- HDU4526威威猫系列故事——拼车记(DP)
http://acm.hdu.edu.cn/showproblem.php?pid=4526 额..七夕快乐哦 刚推的时候有点乱 又各种小错误 查了好久.. dp[i][k] = min(dp[i-1 ...
- HDU 4540 威威猫系列故事——打地鼠
威威猫系列故事--打地鼠 Time Limit: 300/100 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Su ...
- hdu 4523 威威猫系列故事——过生日 小模拟
威威猫系列故事——过生日 Time Limit: 500/200 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total ...
- hdu 4540 威威猫系列故事——打地鼠 dp小水题
威威猫系列故事——打地鼠 Time Limit: 300/100 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total ...
- HDU 4540 威威猫系列故事——打地鼠 (状态压缩DP)
威威猫系列故事——打地鼠 Time Limit: 300/100 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ...
- HDU--杭电--4504--威威猫系列故事——篮球梦--DP
威威猫系列故事——篮球梦 Time Limit: 300/100 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total ...
- HDUOJ----4504 威威猫系列故事——篮球梦
威威猫系列故事——篮球梦 Time Limit: 300/100 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ...
- 2013腾讯编程马拉松初赛第〇场(HDU 4504)威威猫系列故事——篮球梦
http://acm.hdu.edu.cn/showproblem.php?pid=4504 题目大意: 篮球赛假如我们现在已经知道当前比分 A:B,A代表我方的比分,B代表对方的比分,现在比赛还剩下 ...
随机推荐
- Centos7 安装 nodejs
https://nodejs.org/en/download/package-manager/ 设置node v4的源 curl --silent --location https://rpm.nod ...
- Spark运行原理解析
前言: Spark Application的运行架构由两部分组成:driver program(SparkContext)和executor.Spark Application一般都是在集群中运行,比 ...
- 多线程 - CountDownLatch
一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待. 用给定的计数 初始化 CountDownLatch.由于调用了 countDown() 方法,所以在当前计数到达 ...
- 白话学习MVC(五)Controller的激活
一.概述 在此系列开篇的时候介绍了MVC的生命周期 , 对于请求的处理,都是将相应的类的方法注册到HttpApplication事件中,通过事件的依次执行从而完成对请求的处理.对于MVC来说,请求是先 ...
- lodash源码(2)
1.flatten 对深层嵌套数组的抹平 _.flatten([1, [2, 3, [4]]]);* // => [1, 2, 3, [4]]** // using `isDeep`* _.fl ...
- 一些常见maven仓库
<repositories> <repository> <id>spring-releases</id> <url>https://repo ...
- HtmlAgilityPack抓取搜房网数据简单示例
HtmlAgilityPack是一个开源的解析HTML元素的类库,最大的特点是可以通过XPath来解析HMTL,如果您以前用C#操作过XML,那么使用起HtmlAgilityPack也会得心应手.目前 ...
- mac上mysql乱码问题解决
一.mysql出现乱码问题: 出现的问题是下图这样的乱码问题,我是使用java在做练习的时候发现出现字符集编码问题的: 当时是使用jdbc来添加的数据,我的jdbc包括web前端后端的编码都是设置的是 ...
- 2Sigma OA prepare: Longest Chain
DP use HashMap: 根据string的长度sort,然后维护每个string的longest chain,default为1,如果删除某个char生成的string能提供更长的chain, ...
- Git 一些关于 Git、Github 的学习资源
一些关于 Git.Github 的学习资源 昨天浏览 Github 的是时候发现了 Githug 这个游戏,这个游戏用来帮助菜鸟们学习使用 Git 的. Githug is designed to g ...