hdu2923 最短路floyd
建图还是有点烦人的。
#include<map>
#include<string>
#include<stdio.h>
#include<iostream>
#include<string.h>
#define maxn 105
#define INF 99999999
using namespace std;
int g[maxn][maxn],vis[maxn],dis[maxn],n;
void init()
{
int i,j;
for(i=;i<=n;i++)
for(j=;j<=n;j++)
if(i==j)g[i][j]=;
else g[i][j]=INF;
}
void floyd()
{
int i,j,k;
for(i=;i<=n;i++)
for(j=;j<=n;j++)
for(k=;k<=n;k++)
{
if(g[j][k]>g[j][i]+g[i][k])
g[j][k]=g[j][i]+g[i][k];
}
}
int main()
{
int i,j,m,c;
string ss,se,start;
char cc[];
char item[][];
int ff=;
while(scanf("%d%d%d",&n,&c,&m)!=EOF)
{
map<string,int>mp;
if(n==&&c==&&m==)
break;
init();
int num=;
cin>>start;
mp[start]=num++; for(i=;i<=c;i++)
scanf("%s",item[i]); for(i=;i<m;i++)
{
cin>>ss; scanf("%s",cc); cin>>se;
if(!mp[ss])mp[ss]=num++;
if(!mp[se])mp[se]=num++;
int len=strlen(cc);
int l=;
int fr,ed;
ed=len-;
for(fr=;fr<ed;fr++)
{
l=l*+cc[fr]-'';
}
//printf("%d\n",l);
if(cc[]=='-')
{
if(g[mp[ss]][mp[se]]>l)
g[mp[ss]][mp[se]]=l;
}
else if(cc[len-]=='-')
{
if(g[mp[se]][mp[ss]]>l)
g[mp[se]][mp[ss]]=l;
}
else {
if(g[mp[ss]][mp[se]]>l)
g[mp[ss]][mp[se]]=l;
if(g[mp[se]][mp[ss]]>l)
g[mp[se]][mp[ss]]=l;
}
}
floyd();
int ans=;
printf("%d. ",++ff);
string st;
for(i=;i<=c;i++)
{
st="";
int strl=strlen(item[i]);
for(j=;j<strl;j++)
{
st+=item[i][j];
}
//cout<<st<<endl;
ans+=g[mp[start]][mp[st]];
ans+=g[mp[st]][mp[start]];
}
printf("%d\n",ans);
}
}
hdu2923 最短路floyd的更多相关文章
- ACM/ICPC 之 最短路-Floyd+SPFA(BFS)+DP(ZOJ1232)
这是一道非常好的题目,融合了很多知识点. ZOJ1232-Adventrue of Super Mario 这一题折磨我挺长时间的,不过最后做出来非常开心啊,哇咔咔咔 题意就不累述了,注释有写,难点在 ...
- 模板C++ 03图论算法 2最短路之全源最短路(Floyd)
3.2最短路之全源最短路(Floyd) 这个算法用于求所有点对的最短距离.比调用n次SPFA的优点在于代码简单,时间复杂度为O(n^3).[无法计算含有负环的图] 依次扫描每一点(k),并以该点作为中 ...
- 最短路 - floyd算法
floyd算法是多源最短路算法 也就是说,floyd可以一次跑出所以点两两之间的最短路 floyd类似动态规划 如下图: 用橙色表示边权,蓝色表示最短路 求最短路的流程是这样的: 先把点1到其他点的最 ...
- HDU1869---(最短路+floyd)
http://acm.hdu.edu.cn/showproblem.php?pid=1869 思路:最短路+floyd 分析:1 题目是要求所有的数据能否满足“六度分离”,那么我们就想到所有点之间的最 ...
- 【bzoj2324】[ZJOI2011]营救皮卡丘 最短路-Floyd+有上下界费用流
原文地址:http://www.cnblogs.com/GXZlegend/p/6832504.html 题目描述 皮卡丘被火箭队用邪恶的计谋抢走了!这三个坏家伙还给小智留下了赤果果的挑衅!为了皮卡丘 ...
- 【ACM程序设计】求短路 Floyd算法
最短路 floyd算法 floyd是一个基于贪心思维和动态规划思维的计算所有点到所有点的最短距离的算法. P57-图-8.Floyd算法_哔哩哔哩_bilibili 对于每个顶点v,和任一顶点对(i, ...
- poj 3613 经过k条边最短路 floyd+矩阵快速幂
http://poj.org/problem?id=3613 s->t上经过k条边的最短路 先把1000范围的点离散化到200中,然后使用最短路可以使用floyd,由于求的是经过k条路的最短路, ...
- 最短路--floyd算法模板
floyd算法是求所有点之间的最短路的,复杂度O(n3)代码简单是最大特色 #include<stdio.h> #include<string.h> ; const int I ...
- poj 3216 Repairing Company(最短路Floyd + 最小路径覆盖 + 构图)
http://poj.org/problem?id=3216 Repairing Company Time Limit: 1000MS Memory Limit: 131072K Total Su ...
随机推荐
- 【C#】1.算法温故而知新 - 简单的桶排序
该算法的时间复杂度是O(M+N),M为桶的个数,N为待排序的个数 缺点: 1.不适用于小数 2.当数值过多,太浪费空间,比如数值范围为0~99999,那需申请100000个变量,也就是要写成a[100 ...
- 使用Burpsuite破解Webshell密码
Burp Suite 是用于攻击web 应用程序的集成平台.它包含了许多工具,并为这些工具设计了许多接口,以促进加快攻击应用程序的过程.所有的工具都共享一个能处理并显示HTTP 消息,持久性,认证 ...
- nginx反向代理+缓存开启+url重写+负载均衡(带健康探测)的部署记录
在日常运维工作中,运维人员会时常使用到nginx的反向代理,负载均衡以及缓存等功能来优化web服务性能. 废话不多说,下面对测试环境下的nginx反向代理+缓存开启+url重写+负载均衡(带健康探测) ...
- 01JavaIO详解_File类
对程序语言设计者来说,设计一个令人满意的I/O系统,是件极艰难的任务.——摘自Think in java 对java而言,File表示的是文件或目录.但是我们知道文件和目录是不一样的,文件里面存放的是 ...
- 16Spring_AOP编程(AspectJ)_最终通知
- ABP入门系列——使用ABP集成的邮件系统发送邮件
ABP中对邮件的封装主要集成在Abp.Net.Mail和Abp.Net.Mail.Smtp命名空间下,相应源码在此. #一.Abp集成的邮件模块是如何实现的 分析可以看出主要由以下几个核心类组成: E ...
- android camera setParameters failed 类问题分析总结
在 monkey test 测试中出现了一例 RuntimeException ,即 setParameters failed. LOG显示为:09-01 18:47:17.348 15656 156 ...
- Linux 网络编程三(socket代码详解)
//网络编程客户端 #include <stdio.h> #include <stdlib.h> #include <string.h> #include < ...
- SpringMVC中的@PathVariable
@PathVariable是用来动态获得url中的参数的,代码示例如下: 可以在代码中获得lev_1.lev_2和target参数的值看一下 // 支持跳转到WEB-INF/目录下二层目录 @Requ ...
- .NET编译的目标平台(AnyCPU,x86,x64)
转载:http://blog.sina.com.cn/s/blog_78b94aa301014i8r.html 今天有项目的代码收到客户的反馈,要求所有的EXE工程的目标平台全部指定成x86,而所有D ...