#include <iostream>
#include <queue>
#include <vector>
#include <cstring>
#include <cstdio>
#include <map>
using namespace std;
#define MAX 9999999
int dis[+][+];
int vis[+];
string name[+];
int n;
map<string,int> mymap;
vector<int> vec[+];
void spfa(int i)
{
memset(vis,,sizeof(vis));
dis[i][i]=;
vis[i]=;
queue<int> q;
q.push(i);
while(!q.empty())
{
int temp=q.front();
q.pop();
for(int j=;j<vec[temp].size();j++)
{
int to=vec[temp][j];
if(vis[to])
continue;
dis[i][to]=dis[i][temp]+;
q.push(to);
vis[to]=;
}
}
}
int main()
{
int T;
while(cin>>n,n)
{
for(int i=;i<n;i++)
{
for(int j=i+;j<n;j++)
{
dis[i][j]=dis[j][i]=MAX;
}
}
for(int i=;i<n;i++)
vec[i].clear();
int cou=;
string str;
for(int i=;i<n;i++)
{
cin>>str;
mymap[str]=cou++;
}
int m;
cin>>m;
string str1,str2;
for(int i=;i<m;i++)
{
cin>>str1>>str2;
int t1=mymap[str1];
int t2=mymap[str2];
vec[t1].push_back(t2);
vec[t2].push_back(t1);
}
for(int i=;i<n;i++)
{
spfa(i);
}
int ans=;
for(int i=;i<n;i++)
{
for(int j=;j<n;j++)
{
ans=max(ans,dis[i][j]);
}
}
if(ans==MAX)
cout<<-<<endl;
else
cout<<ans<<endl;
}
return ; }

HDU4460的更多相关文章

  1. HDU-4460 Friend Chains(BFS&权为1所有最短路的最大值)

    题目: For a group of people, there is an idea that everyone is equals to or less than 6 steps away fro ...

  2. hdu4460 Friend Chains(记忆化广度优先搜索)

    题意: 任意两点间最短路中的最长距离. 思路: BFS遍历每个点能到达的最远距离. Tips: vector的clear要与resize联用. #include <bits/stdc++.h&g ...

随机推荐

  1. ng 1.2 ng-bind-html 用法

    使用ng-bind-html渲染html字符串时需要在控制器外注册$sec 过滤器 //过滤器渲染html字符串 app.filter('to_trusted',['$sce',function($s ...

  2. python安装selenium和下载浏览器驱动

    1.安装selenium     方法一:可以用在cmd中用pip命令安装. python默认自带pip工具,如果在电脑上配置了pip的环境变量,打开cmd命令窗口后可以直接输入命令pip insta ...

  3. springboot中logback配置

    <?xml version="1.0" encoding="UTF-8"?> <configuration debug="false ...

  4. easyui-textbox多行文本中输入内容,有回车操作时将文本拼接<br/>

    <input class="easyui-textbox" name="versionText" id="versionText" d ...

  5. zookeeper学习笔记记录

    zookeeper的概述: ZooKeeper 本质上是一个分布式的小文件存储系统.提供基于类似于文件系统的目录树方式的数据存储,并且可以对树中的节点进行有效管理.从而用来维护和监控你存储的数据的状态 ...

  6. jquery中text、html的区别

  7. destructuring

    解构(结构化赋值): 解构过程中,具备赋值和变量声明两个功能 目的在于把等号左右长的相似的两个东西内部的值取出来. 对象数组都可以参与解构: let obj = {name: ‘duyi’,age: ...

  8. python的apidoc使用

    一.apidoc的安装 npm install apidoc -g -g参数表示全局安装,这样在哪儿都能使用. 二.apidoc在python接口代码中的使用 def index(): "& ...

  9. 微信小程序-数据绑定

    在js页面的data字典内添加绑定数据 data: { "messg":"helloworld " }, 在wxml页面内使用{{}}调用数据

  10. LINUX | 谷歌云开启SSH及设置root密码

    一.设置root密码 1.先选择从浏览器打开ssh连接服务器 2.切换到root账号 sudo -i 3.设置root密码 passwd 然后会要求输入新密码,然后再重复一次密码,输入密码的时候不会显 ...