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. 【科研论文】W5100在远程电力质量监测设备中的应用

    摘要: 针对传统电力质量监测方法实时性.多参数测试性能较差的缺点,提出了将以太网接入技术与电能采集相结合进行电力质量现场和远程在线监测的设计方案.硬件设计采用微控制器STM32FI03和以太网控制芯片 ...

  2. Django学习笔记(五)—— 表单

    疯狂的暑假学习之  Django学习笔记(五)-- 表单 參考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path         ...

  3. Android学习–Android app 语言切换功能

    功能: app用户根据自己的语言喜好,设置app语言.语言设置只针对本app,并在下次启动应用时保留前一次启动设置. 更新语言: public static void changeAppLanguag ...

  4. CSDN挑战编程——《数学问题》

    数学问题 题目详情: 给你两个长度为n的正整数序列分别为{a1,a2,a3...an},{b1,b2,b3...bn},0<ai,bi<=100: 设S=max{x1*a1+x2*a2+x ...

  5. js中的隐式转换

    js中的不同的数据类型之间的比较转换规则如下: 1. 对象和布尔值比较 对象和布尔值进行比较时,对象先转换为字符串,然后再转换为数字,布尔值直接转换为数字 [] == true; //false [] ...

  6. JNI Java调用C代码 示例

    Activity public class MainActivity extends ListActivity {     static {         System.loadLibrary(&q ...

  7. 网页JavaScript3

    window.document 1,确认元素, document.getElementById("id");           根据id找元素 doucment.getEleme ...

  8. 汉字转拼音(pinyin4j-2.5.0.jar)

    import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCase ...

  9. vs2013+sql server2012

    学习 vs2013 sql server2012使用 : linp lambda entity framework wcf tfs;

  10. libthrift0.9.0解析(三)之TProtocol&TTransport

       以上是transport和protocol的类图和结构图. transport封装了底层的传输通道,主要有read/write.open/close等基本的读写方法,而且都是对于二进制数据. p ...