题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4526
DP题。
dp[i][j]表示前i辆车送走j个人的最小花费。
状态转移方程是: dp[i][j] = min(dp[i][j],dp[i-1][j-p] + p*t[i] + d),其中0<=p<=z[i]。p代表第i辆车送走p个人。
细节部分和边界条件看代码。
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <algorithm>
#include <stack>
#include <queue>
using namespace std;
int t[105];
int z[105];
//dp[i][j]表示前i辆车送走j个人的最小花费
int dp[105][105];
int main()
{
#ifndef ONLINE_JUDGE
freopen("in.txt","r",stdin);
#endif
int cas;
sca