http://acm.hdu.edu.cn/showproblem.php?pid=2992

 #include <cstdio>
#include <cstring>
#include <map>
#include <vector>
#include <queue>
#define maxn 200
#include <algorithm>
using namespace std; const int inf=0x3fffffff; struct node
{
int v,cost;
};
int g[maxn][maxn],a[maxn],dis[];
int n,m,k;
map<int,int>q;
vector<node>v[];
bool vis[];
int que[]; void inti()
{
q.clear();
for(int i=; i<=n; i++)
{
v[i].clear();
}
for(int i=; i<=m+; i++)
{
for(int j=; j<=m+; j++)
{
g[i][j]=inf;
if(i==j) g[i][j]=;
}
}
} void spfa(int qr)
{
queue<int>qq;
memset(vis,false,sizeof(vis));
for(int i=; i<=n; i++) dis[i]=inf;
dis[qr]=;
qq.push(qr);
vis[qr]=true;
while(!qq.empty())
{
int x=qq.front();
qq.pop();
vis[x]=false;
for(int i=; i<(int)v[x].size(); i++)
{
int v2=v[x][i].v,cost=v[x][i].cost;
if(dis[v2]>dis[x]+cost)
{
dis[v2]=dis[x]+cost;
if(!vis[v2])
{
vis[v2]=true;
qq.push(v2);
}
}
}
}
for(int i=; i<=n; i++)
{
if(dis[i]<=&&q[i]!=)
{
g[q[qr]][q[i]]=;
}
} } void floyd()
{
for(int c=; c<=m+; c++)
{
for(int i=; i<=m+; i++)
{
for(int j=; j<=m+; j++)
{
g[i][j]=min(g[i][j],g[i][c]+g[c][j]);
}
}
}
}
int main()
{
while(scanf("%d",&n)!=EOF)
{
if(n==) break;
scanf("%d",&m);
inti();
for(int i=; i<=m; i++)
{
scanf("%d",&a[i]);
q[a[i]]=i;
}
a[]=;
q[]=;
a[m+]=n;
q[n]=m+;
scanf("%d",&k);
for(int i=; i<k; i++)
{
int u,v1,cost;
scanf("%d%d%d",&u,&v1,&cost);
node st;
st.v=v1;
st.cost=cost;
node st1;
st1.v=u;
st1.cost=cost;
v[u].push_back(st);
v[v1].push_back(st1);
}
for(int i=; i<=m; i++)
{
spfa(a[i]);
}
floyd();
if(g[][m+]==inf)
{
printf("-1\n");
}
else
printf("%d\n",g[][m+]-);
}
return ;
}

hdu 2992 Hotel booking的更多相关文章

  1. HDU 2992 Hotel booking(BFS+DFS 或者 SPFA+Floyd)

    点我看题目 题意 : 一个司机要从1点到达n点,1点到n点中有一些点有宾馆,司机的最长开车时间不能超过10小时,所以要在10小时之内找到宾馆休息,但是为了尽快的走到n点,问最少可以经过几个宾馆. 思路 ...

  2. Hotel booking(spfa+floyd)

    http://acm.hdu.edu.cn/showproblem.php?pid=2992 题意:有n个城市,编号为(1~n),有一些城市中有一些旅店,要求从一个城市到另一个城市不能超过10小时,问 ...

  3. HDU 2585 [Hotel]字符串递归处理

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2585 题目大意:马克思要找个曾经去过的很好的旅馆,可惜他记不完整旅馆的名字.他有已知的部分信息和可能的 ...

  4. HDU 2585 Hotel(字符串的模糊匹配+递归)

    Problem Description Last year summer Max traveled to California for his vacation. He had a great tim ...

  5. 再说Play!framework http://hsfgo.iteye.com/blog/806974

    这篇帖子的内容我本来想发到 http://www.iteye.com/topic/806660这里的主贴里去的,想挽回被隐藏的命运,但我写完本贴的内容,却发现为时已晚.好吧,我承认,上一个贴的标题容易 ...

  6. My strength (C-A-R)

    My strength: I am good at problem resolving Challenge In the first year when I come to America I pas ...

  7. Go Revel - main函数分析

    运行revel命令时,首先会编译整个项目,在编译时,会根据`app.conf`配置文件生成两个源码文件`tmp/main.go`.`routes/routes.go`,其中`main.go`是整个项目 ...

  8. spring中的事件 applicationevent 讲的确实不错

    event,listener是observer模式一种体现,在spring 3.0.5中,已经可以使用annotation实现event和eventListner里. 我们以spring-webflo ...

  9. OO问题

    设计一个在线的酒店预订系统,并且可以通过城市搜索出来 解决办法: Main Class: User Room Hotel Booking Adress Enums : 房间的状态和类型 public ...

随机推荐

  1. 查看当前windows字符集

    查看当前windows字符集 命令行输入:chcp

  2. Java与.net的区别delegate和event

    There is no delegate concept in Java The right-side C# program may be mimiced with reflection techno ...

  3. 高级进阶DB2(第2版)——内部结构、高级管理与问题诊断

    <高级进阶DB2(第2版)——内部结构.高级管理与问题诊断> 基本信息 作者: 牛新庄    出版社:清华大学出版社 ISBN:9787302323839 上架时间:2013-7-3 出版 ...

  4. 二分-hdu-4768-Flyer

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4768 题目意思: 有n个A.B.C,每个Ai,Bi,Ci,对于每个P=Ai+k*Ci(P<=B ...

  5. [RxJS] Creation operators: empty, never, throw

    This lesson introduces operators empty(), never(), and throw(), which despite being plain and void o ...

  6. 【移动开发】Android中将我们平时积累的工具类打包

    Android开发的组件打包成JAR安装包,通过封闭成JAR包,可以重复利用,非常有利于扩展和减少工作重复性.这里为了讲解方便,我用了之前的一个代码框架中核心部分,不了解的可以回头看一下:http:/ ...

  7. Android(java)学习笔记251:ContentProvider使用之添加数据到联系人(掌握)

    1.添加联系人逻辑思路 (1)首先在raw_contacts创建一个新的id (2)在data表里面添加这个id对应的数据 2.下面通过一个案例,说明一下如何添加一条数据到联系人: (1)首先我们关注 ...

  8. 2015 UESTC Winter Training #6【Regionals 2010 >> North America - Rocky Mountain】

    2015 UESTC Winter Training #6 Regionals 2010 >> North America - Rocky Mountain A - Parenthesis ...

  9. 比较好的总结runtime

    http://www.cocoachina.com/ios/20160128/15154.html

  10. 帧动画 AnimationDrawable

    Drawable Animation(Frame Animation):帧动画,就像GIF图片,通过一系列Drawable依次显示来模拟动画的效果. 首先,在res/drawable中定义动画 < ...