| 比赛 | 
    noip-081029 | 
    评测结果 | 
    AAAAAAA | 
    | 题目名称 | 
    最小乘车费用 | 
    最终得分 | 
    100 | 
    | 用户昵称 | 
    BYVoid | 
    运行时间 | 
    0.000 s  | 
    | 代码语言 | 
    C++ | 
    内存使用 | 
    0.00 MiB  | 
    | 提交时间 | 
    2008-10-29 21:05:24 | 
显示代码纯文本
#include <iostream>
using namespace std;
int N;
int *F;
int C[11];
void init()
{
	int i;
	freopen("busses.in","r",stdin);
	freopen("busses.out","w",stdout);
	for (i=1;i<=10;i++)
		cin >> C[i];
	cin >> N;
	F=(int *)malloc(sizeof(int)*(N+1));
	for (i=0;i<=N;i++)
		F[i]=0;
}
void dynamic()
{
	int i,j,min;
	for (i=1;i<=N;i++)
	{
		min=0x7FFFFFFF;
		for (j=1;j<=10 && i-j>=0;j++)
		{
			if (F[i-j] + C[j] < min)
				min=F[i-j] + C[j];
		}
		F[i]=min;
	}
}
int main()
{
	init();
	dynamic();
	cout << F[N];
	return 0;
}