现在的位置: 首页 > 综合 > 正文

poj 1603 Risk(floyd)

2018年03月17日 ⁄ 综合 ⁄ 共 693字 ⁄ 字号 评论关闭
题意:(哎~ 题目总是那么难读懂。。。) 有20个国家,求从一个国家开始去争服另一个国家,要经过的最少的邻国??

思路:其实用dijkstra 应该也可以,不过比较麻烦 用floyd 简单明了

#include <stdio.h>
#include <string.h>
#define M 25
int main ()
{
    int
n,m,t,i,j,k,f,v1,v2;
    int
map[M][M];
    int count =
1;
    while (scanf
("%d",&f)!=EOF)
    {
       
for (i = 1;i <= 20;i ++)
           
for (j = 1;j <= 20;j ++)
               
map[i][j] = M;
       
while (f --)
       
{
           
scanf ("%d",&j);
           
map[1][j] = 1;
           
map[j][1] = 1;
       
}
       
t = 19;
       
for (i = 2; i <= t; i ++)
       
{
           
scanf ("%d",&m);
           
while (m--)
           
{
               
scanf("%d",&j);
               
map[i][j] = 1;
               
map[j][i] = 1;
           
}
       
}
       
for (k = 1;k <= 20;k ++)
           
for (i = 1;i <= 20;i ++)
            

抱歉!评论已关闭.