记录编号 2716 评测结果 AAAWWWWWWW
题目名称 Perform巡回演出 最终得分 30
用户昵称 GravatarBYVoid 是否通过 未通过
代码语言 C++ 运行时间 0.015 s
提交时间 2008-09-25 12:41:56 内存使用 0.32 MiB
显示代码纯文本
#include <iostream>

using namespace std;

typedef struct
{
	int cnt;
	int t[31];
}rec;

int p,l,i,j,n,k;
int F[1001][11];
rec cost[11][11];
int Result[1001];

void solve()
{
	for (i=1;i<=n;i++)
	{
		if (cost[1][i].t[1])
			F[1][i]=cost[1][i].t[1];
	}
	
	for (i=2;i<=k;i++)
	{
		for (j=1;j<=n;j++)
		{
			for (l=1;l<=n;l++)
			{
				if (j!=l &&  (cost[l][j].t[(i-1) % cost[l][j].cnt+1]) && ((F[i][j]==0) || (F[i-1][l]+cost[l][j].t[(i-1) % cost[l][j].cnt+1]<F[i][j])))
				F[i][j]=F[i-1][l]+cost[l][j].t[(i-1) % cost[l][j].cnt+1]; 
			}
		}
	}
	Result[p]=F[k][n]; 
}

void init()
{
	freopen("candy.in","r",stdin);
	freopen("candy.out","w",stdout);
	cin >> n >> k;
	p=0;
	while (n && k)
	{
		p++;
		memset(cost,0,sizeof(cost));
		memset(F,0,sizeof(F));
		for (i=1;i<=n;i++)
		{
			for (j=1;j<=i-1;j++)
			{
				cin >> cost[i][j].cnt;
				for (l=1;l<=cost[i][j].cnt;l++)
					cin >> cost[i][j].t[l];
			}
			for (j=i+1;j<=n;j++)
			{
				cin >> cost[i][j].cnt;
				for (l=1;l<=cost[i][j].cnt;l++)
					cin >> cost[i][j].t[l];
			}
		}
		solve();
		cin >> n >> k;
	}
}

int main()
{
	init();
	for (i=1;i<=p;i++)
	{
		cout << Result[i] << endl;
	}
	return 0;
}