HDU4526威威猫系列故事——拼车记(DP)
2024-10-16 07:03:10
http://acm.hdu.edu.cn/showproblem.php?pid=4526
额。。七夕快乐哦
刚推的时候有点乱 又各种小错误 查了好久。。
dp[i][k] = min(dp[i-1][g]+g*t+d,dp[i][k]){(g-k)<=res[i]} 第i辆车时 剩余K个人
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
using namespace std;
#define INF 0xfffffff
int ca[][],dp[][];
int main()
{
int t,g,i,j,k,n,s,d;
cin>>t;
while(t--)
{
cin>>n>>k>>d>>s;
memset(ca,,sizeof(ca));
for(i = ; i <= k ;i++)
scanf("%d%d",&ca[i][],&ca[i][]);
for(i = ; i <= k ; i++)
for(j = ; j <= n ;j++)
dp[i][j] = INF;
if(n==)
{
printf("0\n");
continue;
}
if(ca[][]>=n)
{
cout<<d+ca[][]*n<<endl;
continue;
}
for(i = n-ca[][] ; i < n ; i++)
dp[][i] = n*ca[][]+d;
dp[][n] = n*ca[][];
for(i = ; i <= k ;i++)
{
for(j = ; j <= n ; j++)
{
dp[i][j] = dp[i-][j]+j*(ca[i][]-ca[i-][]);
for(g = j+ ; g <= j+ca[i][]&&g <= n ;g++)
dp[i][j] = min(dp[i][j],dp[i-][g]+g*(ca[i][]-ca[i-][])+d);
}
}
if(dp[k][]==INF)
puts("impossible");
else
cout<<dp[k][]<<endl;
}
return ;
}
最新文章
- mybits批量插入
- 20151013 C# 第一篇 流程控制语句
- 损失函数(Loss Function)
- linux之tmpwatch命令
- Android加载SO库UnsatisfiedLinkError错误的原因及解决方案
- LoadRunner error -27979
- HttpHandler与HttpModule及实现文件下载
- Android高斯模糊
- zoj 1610 Count the Colors(线段树延迟更新)
- AuthenticationManager, ProviderManager 和 AuthenticationProvider
- JavaScript中两个对象数组 属性undefined
- myapp——自动生成小学四则运算题目的命令行程序(侯国鑫 谢嘉帆)
- 详解docker中容器devicemapper设备的挂载流程
- 解决redis aof文件过大的问题
- NEST - 编写查询
- spring boot整合shiro后,部分注解(Cache缓存、Transaction事务等)失效的问题
- TableStore:多行数据操作
- Python学习系列:PyCharm CE 安装与测试
- java Concurrent 中的数据结构
- 利用AutoSPSourceBuilder和Autospinstaller自动安装SharePoint Server 2013图解教程——Part 1