#include <list>
#include <map>
#include <set>
#include <queue>
#include <string>
#include <deque>
#include <stack>
#include <algorithm>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <limits.h>
#include <time.h>
#include <string.h>
using namespace std;
#define LL long long
#define PI acos(-1.0)
#define MAX INT_MAX
#define MIN INT_MIN
#define eps 1e-10
#define FRE freopen("a.txt","r",stdin)
#define N 105
int g[12][12];
int main(){
int n;
int i,j,k;
while(scanf("%d",&n)!=EOF){
for(i=0;i<=n;i++)
for(j=0;j<=n;j++)
g[i][j]=2000000;//初始化不能MAX
for(i=0;i<n;i++){
int m,p;
scanf("%d%d",&m,&p);
if(p==1)
g[i][n]=0;
while(m--){
int a,b;
scanf("%d%d",&a,&b);
g[i][a]=b;
}
}
for(i=0;i<=n;i++)
for(j=0;j<=n;j++)
for(k=0;k<=n;k++)
if(g[j][i]+g[i][k] < g[j][k])
g[j][k]=g[j][i]+g[i][k];
printf("%d\n",g[0][n]);
}
return 0;
}
【floyd】hdu 3665
最新推荐文章于 2019-10-06 08:19:14 发布