mysql 最短路经_poj 3613 Cow Relays 经L边的最短路 | 学步园
题意:
求无向图s,t点间经过L条边的最短路。
思路:
矩阵连乘求图中任意两点间的最短路不经常用,因为复杂度是N^3logN的,但这种
代码:
//poj 3613
//sepNINE
#include
#include
using namespace std;
const int maxN=512;
int g[maxN][maxN];
int ans[maxN][maxN];
int tmp[maxN][maxN];
map mymap;
int n;
void mul1()
{
int i,j,k;
for(i=1;i<=n;++i)
for(j=1;j<=n;++j){
tmp[i][j]=INT_MAX;
for(k=1;k<=n;++k)
if(ans[i][k]!=-1&&g[k][j]!=-1)
tmp[i][j]=min(tmp[i][j],ans[i][k]+g[k][j]);
}
for(i=1;i<=n;++i)
for(j=1;j<=n;++j)
ans[i][j]=tmp[i][j]==INT_MAX?-1:tmp[i][j];
return ;
}
void mul2()
{
int i,j,k;
for(i=1;i<=n;++i)
for(j=1;j<=n;++j){
tmp[i][j]=INT_MAX;
for(k=1;k<=n;++k)
if(g[i][k]!=-1&&g[k][j]!=-1)
tmp[i][j]=min(tmp[i][j],g[i][k]+g[k][j]);
}
for(i=1;i<=n;++i)
for(j=1;j<=n;++j)
g[i][j]=tmp[i][j]==INT_MAX?-1:tmp[i][j];
return ;
}
int main()
{
int i,L,m,s,e;
memset(g,-1,sizeof(g));
scanf("%d%d%d%d",&L,&m,&s,&e);
n=0;
while(m--){
int w,a,b;
scanf("%d%d%d",&w,&a,&b);
if(mymap[a]==0)mymap[a]=++n;
if(mymap[b]==0) mymap[b]=++n;
g[mymap[a]][mymap[b]]=g[mymap[b]][mymap[a]]=w;
}
memset(ans,-1,sizeof(ans));
for(i=1;i<=n;++i)
ans[i][i]=0;
while(L){
if(L%2==1)
mul1();//ans=ans*g;
mul2();//g=g*g;
L=L/2;
}
printf("%d",ans[mymap[s]][mymap[e]]);
}
mysql 最短路经_poj 3613 Cow Relays 经L边的最短路 | 学步园相关推荐
- POJ - 3613 Cow Relays(Floyd思想+矩阵快速幂+动态规划)
题目链接:点击查看 题目大意:给定一张由T(T<=100)条边构成的无向图,点的编号为1~1000,之间的整数,求从起点S到终点E恰好经过N(N<=1e6)条边(可重复经过)的最短路 题目 ...
- POJ 3613 Cow Relays (floyd + 矩阵高速幂)
题目大意: 求刚好经过K条路的最短路 我们知道假设一个矩阵A[i][j] 表示表示 i-j 是否可达 那么 A*A=B B[i][j] 就表示 i-j 刚好走过两条路的方法数 那么同理 我们把 ...
- qt调用mysql加密接口_Qt实现客户端/服务器端登录验证|数据传输使用md5加密 | 学步园...
要完成两个模块:客户端和服务器端.即实现通过客户端向远程服务器段发送数据来验证,以此来实现简单的认证功能.同时,客户端在向服务器段发送的数据通过md5加密后再传送. 开发环境与工具 开发操作系统:Wi ...
- go 获得 mysql 实际运行 SQL_mysql对标准sql的goup by进行了扩展 | 学步园
标准SQL语法中,对SELECT语句执行GROUP BY操作的话,SELECT选择的列必须出现在GROUP BY子句中,也就是说先要明确根据什么分组,然后才能选择分没分组.不过MySQL数据库不完全是 ...
- c 中连接mysql登录不成功_数据库连接失败的原因分析及解决办法 | 学步园
如何来解决三个最常见的连接错误. 第一个错误"SQL Server 不存在或访问被拒绝"通常是最复杂的,错误发生的原因比较多,需要检查的方面也比较多.一般说来,有以下几种可能性: ...
- mysql 正则截取字符串_mysql字符串查找截取与正则表达式的联合应用 | 学步园
/* 判断字符串里的内容是否是数值类型 **************************************************** is_double 输入参数: str: ...
- mysql 异常关机后 无法查数据_MySQL数据库非法关机造成数据表损坏怎么排查 | 学步园...
该篇文章我们介绍由于非法硬件关机,造成了MySQL数据库的数据表损坏,数据库不能正常运行的一个实例.下面学步园小编来讲解下MySQL数据库非法关机造成数据表损坏怎么排查? MySQL数据库非法关机造成 ...
- mysql超长sql查询_超长SQL怎么查询?MySQL列长度限制有哪些 | 学步园
MySQL字符串的限制长度看似重要性不要,其实和整个MySQL数据库的安全性是息息相关的,很值得我们去深入研究分析.SQL注入攻击一直都在被广泛的讨论,然而人们却忽略了今天我将要介绍的这两个安全隐患, ...
- mysql 枚举字段,MySQL字段中的枚举是什么意思 | 学步园
MySQL字段相信大家都有一些了解,为您介绍的是MySQL字段中的枚举,希望对您学习MySQL字段方面能够有所帮助.下面学步园小编来讲解下MySQL字段中的枚举是什么意思? MySQL字段中的枚举是什 ...
最新文章
- 折叠屏就要来了,适配逼死 Android 开发?
- 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
- linux命令tcpdump
- 全国计算机等级考试题库二级C操作题100套(第43套)
- 【ASP.NET Web API教程】5.4 ASP.NET Web API批处理器
- 我自己关于C语言,编译器,标准库,GUN glibc,CRT ,API之类的理解。
- android camera(6)---camera2 拍照流程
- 老鸟对菜鸟的一些建议
- java使用freemaker自定义路径导出Word关键点讲解版
- python rtftotxt_利用python将docx文件转为txt
- java pingfang,PingFang sc字体的使用
- python写界面c这算法_OpenCV算法精解:基于Python与C.pdf
- Windows下安装GitHub客户端
- javascript gba游戏模拟器
- PCAN-View 软件添加111K波特率选项
- 实验二 译码器及其应用
- Sketch 插件开发指南
- outlook中网址连接打不开解决办法
- 魔兽世界正式服哪个服务器稳定,魔兽世界正式服什么职业厉害2021
- 微型计算机的特点及其主板构成,第1章 计算机基础知识教案