题目描述
给定n个点,点对之间至多有一条双向道路链接,每条道路要想通过则有一定的花费。
给定物体的路径,计算其花费。
输入
第一行两个整数n m t表示点的个数、道路条数和询问个数
接下来m行每行三个整数x y w,表示x和y之间有一条花费w的道路
接下里t行每行k+1个整数,第一个整数k表示这次询问的路径长度为k,接下来k个整数表示具体路径
输出
t行每行一个整数表示每次询问的路径花费
样例输入
4 3 2
1 2 1
2 3 1
3 4 1
3 1 2 3
3 2 3 4
样例输出
2
2
#include<cstdio>
using namespace std;
char a[105][105];
char b[105][105];
int main()
{
int n,m,t,p,k;
scanf("%d%d%d",&n,&m,&t);
for(int i=0;i<m;i++)
{
scanf("%s%s%s",&a[i][0],&a[i][1],&a[i][2]);
}
for(int i=0;i<t;i++)
{
scanf("%d",&k);
for(int l=0;l<k;l++)
{
scanf("%s",&b[i][l]);
for(int j=l+1;j<k;j++)
{
if(b[i][l]==a[i][0] && b[i][j]==a[i][1])
{
p=a[i][2];
p=p+p;
}
}
}
}
for(int i=0;i<t;i++)
{
printf("%d\n",p);
}
return 0;
}