hdu 4460spfa用map来实现
#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来实现的更多相关文章
- hdu 1800 (map)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1800 Flying to the Mars Time Limit: 5000/1000 MS (Java/ ...
- [HDU 4585] Shaolin (map应用)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4585 题目大意:不停的插入数字,问你跟他相距近的ID号.如果有两个距离相近的话选择小的那个. 用map ...
- hdu 统计难题(map)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1251 map的强大之处,但是运行时间太长. 代码: #include <stdio.h> ...
- ACM学习历程—HDU 2112 HDU Today(map && spfa && 优先队列)
Description 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这时候,XHD夫妇也退居了二线 ...
- HDU 2112 HDU Today Dij+map转化
HDU Today 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这时候,XHD夫妇也退居了二线,并 ...
- hdu 4585 map **
题意: Shaolin temple is very famous for its Kongfu monks.A lot of young men go to Shaolin temple every ...
- HDU 4585 Shaolin(map应用+二分)
题目大意:原题链接 初始少林最开始只有一个老和尚,很多人想进少林,每个人有一个武力值,若某个人想进少林,必须先与比他早进去的并且武力值最接近他的和尚比武, 如果接近程度相同则选择武力值比他小的,按照进 ...
- K-D树问题 HDU 4347
K-D树可以看看这个博客写的真心不错!这里存个版 http://blog.csdn.net/zhjchengfeng5/article/details/7855241 HDU 4349 #includ ...
- 第一周训练 | STL和基本数据结构
A - 圆桌问题: HDU - 4841 #include<iostream> #include<vector> #include<stdio.h> #includ ...
随机推荐
- 使用原生javascript实现jquery的$(function(){ })
在使用jquery的时候,经常用到$(function(){})方法或者是$(document).read(function(){})来作为页面dom节点加载完成之后javascript的执行入口,现 ...
- MY $MYVIMRC
set nocompatiblesource $VIMRUNTIME/vimrc_example.vim"source $VIMRUNTIME/mswin.vim"behave m ...
- ubuntu下安装php-curl扩展
查找包 apt-cache是linux下的一个apt软件包管理工具,它可查询apt的二进制软件包缓存文件.APT包管理的大多数信息查询功能都可以由apt-cache命令实现,通过apt-cache命令 ...
- 如何安装Virtual Box的VBox Guest Additions扩展程序
Virtual Box的默认安装是不包含Guest Addition这个扩展的,在实际使用过程中带来种种不便,比如只能通过小窗口访问虚拟机的操作系统,通过默认的右Ctrl切换鼠标,不能和宿主操作系统共 ...
- 摄像头调用代码 笔记本的话,本身有一个摄像头,由于用的usb摄像头,需要把笔记本的摄像头禁用后,再使用
摄像头调用代码 笔记本的话,本身有一个摄像头,由于用的usb摄像头,需要把笔记本的摄像头禁用后,再使用 <!DOCTYPE html> <html lang="en&quo ...
- 安卓获取数据demo出现的问题
时间戳是long型的数据,但其他数据都是float型,但AsyncTask要求是统一数据类型.这样我就不能把时间戳放进AsyncTask里面进行处理,我就在doInBackground中获取时间戳然后 ...
- linux_2
mac和linux上默认安装着SSH客户端,Windows上需要自己安装个软件. Windows下SSH客户端的安装:建议从官方网站下载正式程序安装(免费) Putty:https://www.chi ...
- Caused by: java.lang.IllegalArgumentException: Parameter Maps collection does not contain value for com.bj186.crm.mapper.UserMapper.Integer
在使用SSM整合myBatis的过程中遇到了这个问题. 问题的原因: 把parameterType错误的写成了parameterMap 解决办法: 将parameterMap修改为parameterT ...
- LayuiAdmin退出模块报错解决
将layuiAdmin/src/controller目录下的common.js中 logout方法的url中logout.js的路径修改为自己目录的路径: 我这里修改为绝对路径:
- Java会话(session)管理
会话概述 什么是会话 简单的理解:用户打开浏览器,点击多个超链接,访问Web服务器上多个资源,然后关闭浏览器,整个过程称之为一次会话. 需要解决的问题 每个用户在使用浏览器与服务器会话的过程中,会产生 ...