标签:des style color java os io strong for
5 5 12345978ABCD2341 5 23415608ACBD3412 7 34125678AEFD4123 15 23415673ACC34123 4 41235673FBCD2156 2 20 12345678ABCD 30 DCBF5432167D 0Sample Output17 -1
#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
#define inf 0x3f3f3f3f
struct node
{
char s[5];
char e[5];
}b[1005];
int dis[1005];
int vis[1005];
int map[1005][1005];
int n;
int pos;
void dijkstra()
{
for(int i=0;i<n;i++)
{
dis[i]=map[0][i];
vis[i]=0;
}
dis[0]=0;
vis[0]=1;
int min;
for(int i=0;i<n-1;i++)
{
min=inf;
for(int j=0;j<n;j++ )
{
if(!vis[j]&&dis[j]<min)
{
min=dis[j];
pos=j;
}
}
vis[pos]=1;
for(int j=0;j<n;j++)
{
if(!vis[j]&&dis[j]>dis[pos]+map[pos][j])
dis[j]=dis[pos]+map[pos][j];
}
}
}
int main()
{
char c[100];
int count[1005];
while(scanf("%d",&n)!=EOF&&n)
{
for(int i=0;i<n;i++)
{
scanf("%d%s",&count[i],c);
int len=strlen(c);
b[i].s[0]=c[0];
b[i].s[1]=c[1];
b[i].s[2]=c[2];
b[i].s[3]=c[3];
b[i].e[0]=c[len-4];
b[i].e[1]=c[len-3];
b[i].e[2]=c[len-2];
b[i].e[3]=c[len-1];
}
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
map[i][j]=inf;
}
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
if(strcmp(b[i].e,b[j].s)==0&&i!=j)
map[i][j]=count[i];
}
for(int i=0;i<n;i++)
dis[i]=inf;
dijkstra();
if(n==1||dis[n-1]==inf)
printf("-1\n");
else printf("%d\n",dis[n-1]);
}
return 0;
}
hdu1546-Idiomatic Phrases Game 简单dijkstra,布布扣,bubuko.com
hdu1546-Idiomatic Phrases Game 简单dijkstra
标签:des style color java os io strong for
原文地址:http://blog.csdn.net/u013067957/article/details/38434589