#include<stdio.h>

#include<string.h>  

#include <iostream>

#include <algorithm>

#include<string>//必须加这个

#include<cstdio>

#define N 11000

#define NN 1100

#define inf 999999999

#include<map>

#include<queue>

using namespace std;

map<string,int>ymap;//对于用这个

struct node {

int x,next;

}f[N*2];

int dis[NN],len,n,head[NN];

void Add(int a,int b) {

f[len].x=b;f[len].next=head[a];

head[a]=len++;

}

int spfa(int u) {

int visit[NN];

memset(visit,0,sizeof(visit));

int cur,i,max;

for(i=0;i<n;i++)

dis[i]=inf;

queue<int>q;

q.push(u);

dis[u]=0;

visit[u]=1;

while(!q.empty()) {

cur=q.front();

q.pop();

for(i=head[cur];i!=-1;i=f[i].next) {

u=f[i].x;

if(!visit[u]) {

q.push(u);

visit[u]=1;

dis[u]=dis[cur]+1;

}

}

}

max=-1;

for(i=0;i<n;i++)

        if(dis[i]>max) 

        max=dis[i];

return max;

}

int main() {

int m,i,f1,f2,ans,cnt;

char s[20],s1[20];

while(scanf("%d",&n),n) {

ymap.clear();

for(i=0;i<n;i++) {

scanf("%s",s);

ymap[s]=i;



}

len=0;

scanf("%d",&m);

memset(head,-1,sizeof(head));

while(m--) {

scanf("%s%s",s,s1);

f1=ymap[s];

f2=ymap[s1];

Add(f1,f2);Add(f2,f1);

}

cnt=-1;

for(i=0;i<n;i++) {

ans=spfa(i);

cnt=cnt>ans?cnt:ans;

}

if(cnt>=inf)

printf("-1\n");

else

printf("%d\n",cnt);

}

return 0;

}

hdu 4460spfa用map来实现的更多相关文章

  1. hdu 1800 (map)

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=1800 Flying to the Mars Time Limit: 5000/1000 MS (Java/ ...

  2. [HDU 4585] Shaolin (map应用)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4585 题目大意:不停的插入数字,问你跟他相距近的ID号.如果有两个距离相近的话选择小的那个. 用map ...

  3. hdu 统计难题(map)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1251 map的强大之处,但是运行时间太长. 代码: #include <stdio.h> ...

  4. ACM学习历程—HDU 2112 HDU Today(map && spfa && 优先队列)

    Description 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这时候,XHD夫妇也退居了二线 ...

  5. HDU 2112 HDU Today Dij+map转化

    HDU Today 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这时候,XHD夫妇也退居了二线,并 ...

  6. hdu 4585 map **

    题意: Shaolin temple is very famous for its Kongfu monks.A lot of young men go to Shaolin temple every ...

  7. HDU 4585 Shaolin(map应用+二分)

    题目大意:原题链接 初始少林最开始只有一个老和尚,很多人想进少林,每个人有一个武力值,若某个人想进少林,必须先与比他早进去的并且武力值最接近他的和尚比武, 如果接近程度相同则选择武力值比他小的,按照进 ...

  8. K-D树问题 HDU 4347

    K-D树可以看看这个博客写的真心不错!这里存个版 http://blog.csdn.net/zhjchengfeng5/article/details/7855241 HDU 4349 #includ ...

  9. 第一周训练 | STL和基本数据结构

    A - 圆桌问题: HDU - 4841 #include<iostream> #include<vector> #include<stdio.h> #includ ...

随机推荐

  1. laravel关联用户

    参考文档:模型关联-反向关联 belongsToor 模型层 app/Post.php public function user() { return $this->belongsTo('\Ap ...

  2. ios项目中引用其他开源项目

    1. 将开源项目的.xcodeproj拖入项目frameworks 2. Build Phases下 Links Binary With Libraries 引入.a文件.Target Depende ...

  3. 【HEVC帧间预测论文】P1.3 Fast Inter-Frame Prediction Algorithm of HEVC Based on Graphic Information

    基于图形信息的HEVC帧间预测快速算法/Fast Inter-Frame Prediction Algorithm of HEVC Based on Graphic Information <H ...

  4. HYSBZ 1588 营业额统计 (Splay树)

    题意:给出一个公司每一天的营业额,求每天的最小波动值之和.该天的最小波动值= min { 绝对值| 该天以前某一天的营业额-该天的营业额 | }.第一天的最小波动值就是其自己. 思路:Splay伸展树 ...

  5. uva 1451 数形结合

    思路:枚举点t,寻找满足条件的点t': 计sum[i]为前i项合,平均值即为sum[t]-sum[t'-1]/t-t'+1 设(Pi=(i,Si),表示点在s中的位置,那么就可以画出坐标图,问题就转化 ...

  6. STL || Gym 101653U Top 25

    一组字符串给出两种排列方式, 求最小分成多少组 如 A     A B     C C    D D    B E    E 则分成3组 A B C D E 即为1 3 1 #include < ...

  7. devops issue

    1.Nginx(refercence:https://zhuanlan.zhihu.com/p/24382606) summary: DJANGO_PROJECT = /home/django/dja ...

  8. mysql中ibatis的limit动态传参

    param.put("pageNo",pageNo);   param.put("pageSize",pageSize); sqlMap中的用法 limit $ ...

  9. C++ Simple Message/Logging Class

    在 Qt的源码与Protobuf 的代码中,看到相同的简单消息(日志)输出的类实现,基本思路是使用宏定义,重载临时类对象,调用类方法或者通过析构函数自动调用输出方法,实现消息输出.这里以 Protob ...

  10. 环境变量HISTCONTROL命令及对快捷键Ctrl+o命令的影响

    在linux中环境变量HISTCONTROL可以控制历史的记录方式. HISTCONTROL有以下的选项: ignoredups          默认,忽略重复命令 ignorespace      ...