分析:该题有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 威威猫系列故事——拼车记 动态规划的更多相关文章

  1. hdoj 4526 威威猫系列故事——拼车记

    威威猫系列故事——拼车记 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total ...

  2. HDU4526威威猫系列故事——拼车记(DP)

    http://acm.hdu.edu.cn/showproblem.php?pid=4526 额..七夕快乐哦 刚推的时候有点乱 又各种小错误 查了好久.. dp[i][k] = min(dp[i-1 ...

  3. HDU 4540 威威猫系列故事——打地鼠

    威威猫系列故事--打地鼠 Time Limit: 300/100 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) Total Su ...

  4. hdu 4523 威威猫系列故事——过生日 小模拟

    威威猫系列故事——过生日 Time Limit: 500/200 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total ...

  5. hdu 4540 威威猫系列故事——打地鼠 dp小水题

    威威猫系列故事——打地鼠 Time Limit: 300/100 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total ...

  6. HDU 4540 威威猫系列故事——打地鼠 (状态压缩DP)

    威威猫系列故事——打地鼠 Time Limit: 300/100 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total ...

  7. HDU--杭电--4504--威威猫系列故事——篮球梦--DP

    威威猫系列故事——篮球梦 Time Limit: 300/100 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total ...

  8. HDUOJ----4504 威威猫系列故事——篮球梦

    威威猫系列故事——篮球梦 Time Limit: 300/100 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total ...

  9. 2013腾讯编程马拉松初赛第〇场(HDU 4504)威威猫系列故事——篮球梦

    http://acm.hdu.edu.cn/showproblem.php?pid=4504 题目大意: 篮球赛假如我们现在已经知道当前比分 A:B,A代表我方的比分,B代表对方的比分,现在比赛还剩下 ...

随机推荐

  1. 滚轮事件js

    <!DOCTYPE html> <html> <head>   <title>jane</title>   <style>div ...

  2. 有关segue的简介

    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {   ViewControllerB *vc = segue ...

  3. Nginx执行php显示no input file specified的处理方法

    /var/www/nginx-default中放上一份phpinfo.php,使用http://localhost/phpinfo.info 访问,结果报错,显示 “No input file spe ...

  4. 字节流与字符流(FileInputStream类和FileOutputStream类)

    FileInputStream类和FileOutputStream类中,第一个类的源端和第二个类的目的端都是磁盘文件,它们的构造方法允许通过文件的路径名来构造相应的流.例如: FileInputSte ...

  5. confluence5.6安装

    转自:http://ju.outofmemory.cn/entry/157013 说明:此文在confluence-wiki-5.6.5版本亲测通过附件:http://pan.baidu.com/s/ ...

  6. 20145320《Java程序设计》第9周学习总结

    20145320<Java程序设计>第9周学习总结 教材学习内容总结 16.整合数据库 JDBC(java DateBase Connectivity)是用于执行SQL的解决方案,开发人员 ...

  7. 湖大OJ-实验C----NFA转换为DFA

    实验C----NFA转换为DFA Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB Total submit us ...

  8. 简要介绍Apache、php、mysql安装和工具介绍

    1 安装Apache 网站:www.Apache.org下载相应的Apache,目前下载了近期的:httpd-2.2.15-win32-x86-openssl-0.9.8msi 安装简要步骤如下图: ...

  9. 【java开发系列】—— struts2简单入门示例

    前言 最近正好有时间总结一下,过去的知识历程,虽说东西都是入门级的,高手肯定是不屑一顾了,但是对于初次涉猎的小白们,还是可以提供点参考的. struts2其实就是为我们封装了servlet,简化了js ...

  10. 简明python教程 --C++程序员的视角(四):容器类型(字符串、元组、列表、字典)和参考

    数据结构简介 Python定义的类型(或对象)层次结构在概念上可以划分为四种类别:简单类型.容器类型.代码类型 和内部类型. 可以将 PyObject 类之下的所有 Python 类划分为 Pytho ...