正文

ZOJ 1221 Risk2006-07-27 00:10:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/cruxd/16850.html

分享到:

/* source:  zju 1221 */
/* algo:  floyd  */
/* author:  St.Crux  */


#include <cstdio>

int m[20][20];

int main()
{
 //freopen("in.txt", "r", stdin);
 int i, k, j, n, a, t = 0;
 while(scanf("%d", &a) != EOF)
 {  
  for(i = 0; i < 20; i ++)
  {
   for(k = 0; k < 20; k ++)
   {
    m[i][k] = ((i == k) ? 0 : 100);
   }
  }
  for(k = 0; k < a; k ++)
  {
   scanf("%d", &j);
   m[0][j - 1] = 1;
   m[j - 1][0] = 1;
  }
  for(i = 1; i < 19; i ++)
  {
   scanf("%d", &a);
   for(k = 0; k < a; k ++)
   {
    scanf("%d", &j);
    m[i][j - 1] = 1;
    m[j - 1][i] = 1;
   }
 } 
 for(i = 0; i < 20; i ++)
 {
  for(k = 0; k < 20; k ++)
  {
   for(j = 0; j < 20; j ++)
   {    
    if(m[i][k] > m[i][j] + m[j][k])
    {
     m[i][k] = m[i][j] + m[j][k];
     m[k][i] = m[i][k];
    }
   }
  }
 }
 a = 0;
 scanf("%d", &n);
 
 printf("Test Set #%d\n", ++ t);
 for(i = 0; i < n; i ++)
 {
  scanf("%d%d", &j, &k);
  printf("%d to %d: %d\n", j, k, m[j - 1][k - 1]);
 }
 printf("\n");
 }
 return 0;
}

阅读(4099) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册