首页 > 分享 > 巡回演出

巡回演出

巡回演出

最新推荐文章于 2018-09-23 20:49:48 发布

scutbenson 于 2018-08-25 20:49:30 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

题目点这里~https://blog.csdn.net/fisher_jiang/article/details/810358

题目长到恐怖。。。 然而80%在讲输入。。。(手动吐血) 其实一道较典型的dp 直接上代码啦:(没地方测,可能应该大概能ac)

#include <cstdio>

#include <algorithm>

#include <cstring>

using namespace std;

struct node

{

int zq[30+5],len;//周期第i天为zq[i] ,长度为len

};

const int maxValue=0x7fffffff;

int n,k1;

node a[10+5][10+5];//a[i,j]:从i到j的旅程表

int f[10+5][1000+5];//f[i,j]:第j天到第i个城市最小花费,=-1为不存在

void dp()

{

int i,j,k,k2;

f[1][0]=0;

for (k=1;k<=k1;k++)//第k天

{

for (i=1;i<=n;i++)//起始城市

{

if (f[i][k-1]<0)

continue;

for (j=1;j<=n;j++)//目标城市

{

if (i==j)

continue;

k2=k%a[i][j].len;

if (a[i][j].zq[k2]==0)

continue;

if (f[j][k]==-1)

f[j][k]=maxValue;

f[j][k]=min(f[j][k],f[i][k-1]+a[i][j].zq[k2]);

}

}

}

if (f[n][k1]==-1)

printf("0n");

else

printf("%dn",f[n][k1]);

}

int main()

{

int i,j,k,x,y;

freopen("a.txt","r",stdin);

while (1)

{

scanf("%d%d",&n,&k1);

if (n==0)

break;

for (i=1;i<=n;i++)

for (j=0;j<=k1;j++)

f[i][j]=-1;

for (i=1;i<=n;i++)

{

for (j=1;j<=n;j++)

{

if (j==i)

j++;

if (j>n)

break;

scanf("%d",&x);//周期长度

a[i][j].len=x;

for (k=1;k<=x;k++)

{

scanf("%d",&y);

if (k==x)

a[i][j].zq[0]=y;

else

a[i][j].zq[k]=y;

}

//for (k=1;k<=x;k++)printf("%d ",a[i][j].zq[k]);

//printf("n");

}

}

dp();

}

return 0;

}

相关知识

红泪
茉莉花香飘万里
花架施工大样图图片
花架施工大样图片
花架景墙施工图图片
花架铺装施工图图片
鲜花ppt模板图片
鲜花婚庆公司图片
木花架施工图片
仿真花摆件图片

网址: 巡回演出 https://m.huajiangbk.com/newsview761536.html

所属分类:花卉
上一篇: 恐怖黎明虚化敌法猎人的元素虚化装
下一篇: 《美国恐怖故事》合集