DP.

设状态dp[i][j]表示j辆车后还剩余i个人的花费,枚举一个车的座位k,加上剩下人数i,注意i+k不能超过n,就很容易dp了。

#include <iostream>
#include <cstdio>
#include <algorithm> using namespace std;
const int inf=(1<<25);
int dp[105][105];
struct Car{
int ti,zi;
}cars[110]; int main(){
int T,n,k,d,s,cnt,t,z;
scanf("%d",&T);
while(T--){
scanf("%d%d%d%d",&n,&k,&d,&s);
cnt=0;
for(int i=1;i<=k;i++){
scanf("%d%d",&t,&z);
if(t<=s){
cnt++;
cars[cnt].ti=t; cars[cnt].zi=z;
}
}
for(int i=0;i<=n;i++)
for(int j=0;j<=cnt;j++) dp[i][j]=inf;
dp[n][0]=0;
for(int j=1;j<=cnt;j++){
for(int i=0;i<=n;i++){
if(i==0){
dp[i][j]=dp[i][j-1];
for(k=1;k<=cars[j].zi;k++){
if(i+k>n) break;
dp[i][j]=min(dp[i][j],dp[i+k][j-1]+k*(cars[j].ti-cars[j-1].ti)+d);
}
}
else{
dp[i][j]=dp[i][j-1]+i*(cars[j].ti-cars[j-1].ti);
for(k=1;k<=cars[j].zi;k++){
if(k+i>n) break;
dp[i][j]=min(dp[i][j],dp[i+k][j-1]+(i+k)*(cars[j].ti-cars[j-1].ti)+d);
}
}
}
}
int ans=inf;
for(int i=0;i<=cnt;i++){
ans=min(ans,dp[0][i]);
}
if(ans!=inf) printf("%d\n",ans);
else puts("impossible");
}
return 0;
}

  

HDU 4526的更多相关文章

  1. HDU 4526 拼车记

    话说威威猫有一次去参加比赛,虽然学校离比赛地点不太远,但威威猫还是想坐出租车去.大学城的出租车总是比较另类,有“拼车”一说,也就是说,你一个人坐车去,还是一堆人一起,总共需要支付的钱是一样的(每辆出租 ...

  2. hdu 1728 逃离迷宫 bfs记转向

    题链:http://acm.hdu.edu.cn/showproblem.php?pid=1728 逃离迷宫 Time Limit: 1000/1000 MS (Java/Others)    Mem ...

  3. hdu 1728 逃离迷宫 bfs记步数

    题链:http://acm.hdu.edu.cn/showproblem.php?pid=1728 逃离迷宫 Time Limit: 1000/1000 MS (Java/Others)    Mem ...

  4. HDOJ 2111. Saving HDU 贪心 结构体排序

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  5. 【HDU 3037】Saving Beans Lucas定理模板

    http://acm.hdu.edu.cn/showproblem.php?pid=3037 Lucas定理模板. 现在才写,noip滚粗前兆QAQ #include<cstdio> #i ...

  6. hdu 4859 海岸线 Bestcoder Round 1

    http://acm.hdu.edu.cn/showproblem.php?pid=4859 题目大意: 在一个矩形周围都是海,这个矩形中有陆地,深海和浅海.浅海是可以填成陆地的. 求最多有多少条方格 ...

  7. HDU 4569 Special equations(取模)

    Special equations Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u S ...

  8. HDU 4006The kth great number(K大数 +小顶堆)

    The kth great number Time Limit:1000MS     Memory Limit:65768KB     64bit IO Format:%I64d & %I64 ...

  9. HDU 1796How many integers can you find(容斥原理)

    How many integers can you find Time Limit:5000MS     Memory Limit:32768KB     64bit IO Format:%I64d ...

随机推荐

  1. 慕课网3-13编程练习:采用flex弹性布局制作页面主导航

    小伙伴们,伸缩容器的属性我们已经学完了,接下来使用我们所学的伸缩容器属性完成下面的效果图. 要求: 1.logo.导航项.登录注册按钮这三项在水平和垂直方向上都对齐,而且他们之间的距离也相等. 2.导 ...

  2. 取消安卓listview,scrollview,gridview滑动时候边缘模糊问题

    只需在xml文件里面声明: android:faddingEdge = "none" android:faddingEdgelenth = "0dp" andr ...

  3. 【知识总结】快速傅里叶变换(FFT)

    这可能是我第五次学FFT了--菜哭qwq 先给出一些个人认为非常优秀的参考资料: 一小时学会快速傅里叶变换(Fast Fourier Transform) - 知乎 小学生都能看懂的FFT!!! - ...

  4. 设置靠近 水平居中的主体内容Div 的 左侧位置固定的Div

    示例效果: 1.主体内容的divMain 水平居中: 2.divLeft 靠近divMain ,位置固定,不随垂直滚动条而动: 相关代码: <html> <head runat=&q ...

  5. 关于学习C语言

    c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要. 在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习.在这之 ...

  6. bootstrap 字体颜色 对齐方式

    一:字体代码:作用--颜色 1..text-muted:提示--浅灰色 2..text-primary:主要--蓝色 3..text-success:成功--浅绿色 4..text-info:     ...

  7. Andorid Scrolling Activity(CoordinatorLayout详情)

    1.new project -> Scrolling Activity 2.Layout xml code activity_scrolling.xml <?xml version=&qu ...

  8. Matrix computations in C

    meschach配置使用 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !im ...

  9. Nginx 反向代理并缓存及缓存清除

    Nginx 反向代理并缓存及缓存清除 原文地址:http://www.cnblogs.com/caoguo/p/5012447.html 一. Nginx 配置 #user nobody; worke ...

  10. Python 之web动态服务器

    webServer.py代码如下: import socket import sys from multiprocessing import Process class WSGIServer(obje ...