题意:

求无向图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边的最短路 | 学步园相关推荐

  1. POJ - 3613 Cow Relays(Floyd思想+矩阵快速幂+动态规划)

    题目链接:点击查看 题目大意:给定一张由T(T<=100)条边构成的无向图,点的编号为1~1000,之间的整数,求从起点S到终点E恰好经过N(N<=1e6)条边(可重复经过)的最短路 题目 ...

  2. POJ 3613 Cow Relays (floyd + 矩阵高速幂)

    题目大意: 求刚好经过K条路的最短路 我们知道假设一个矩阵A[i][j] 表示表示 i-j 是否可达 那么 A*A=B  B[i][j]  就表示   i-j 刚好走过两条路的方法数 那么同理 我们把 ...

  3. qt调用mysql加密接口_Qt实现客户端/服务器端登录验证|数据传输使用md5加密 | 学步园...

    要完成两个模块:客户端和服务器端.即实现通过客户端向远程服务器段发送数据来验证,以此来实现简单的认证功能.同时,客户端在向服务器段发送的数据通过md5加密后再传送. 开发环境与工具 开发操作系统:Wi ...

  4. go 获得 mysql 实际运行 SQL_mysql对标准sql的goup by进行了扩展 | 学步园

    标准SQL语法中,对SELECT语句执行GROUP BY操作的话,SELECT选择的列必须出现在GROUP BY子句中,也就是说先要明确根据什么分组,然后才能选择分没分组.不过MySQL数据库不完全是 ...

  5. c 中连接mysql登录不成功_数据库连接失败的原因分析及解决办法 | 学步园

    如何来解决三个最常见的连接错误. 第一个错误"SQL Server 不存在或访问被拒绝"通常是最复杂的,错误发生的原因比较多,需要检查的方面也比较多.一般说来,有以下几种可能性: ...

  6. mysql 正则截取字符串_mysql字符串查找截取与正则表达式的联合应用 | 学步园

    /* 判断字符串里的内容是否是数值类型 **************************************************** is_double 输入参数: str:       ...

  7. mysql 异常关机后 无法查数据_MySQL数据库非法关机造成数据表损坏怎么排查 | 学步园...

    该篇文章我们介绍由于非法硬件关机,造成了MySQL数据库的数据表损坏,数据库不能正常运行的一个实例.下面学步园小编来讲解下MySQL数据库非法关机造成数据表损坏怎么排查? MySQL数据库非法关机造成 ...

  8. mysql超长sql查询_超长SQL怎么查询?MySQL列长度限制有哪些 | 学步园

    MySQL字符串的限制长度看似重要性不要,其实和整个MySQL数据库的安全性是息息相关的,很值得我们去深入研究分析.SQL注入攻击一直都在被广泛的讨论,然而人们却忽略了今天我将要介绍的这两个安全隐患, ...

  9. mysql 枚举字段,MySQL字段中的枚举是什么意思 | 学步园

    MySQL字段相信大家都有一些了解,为您介绍的是MySQL字段中的枚举,希望对您学习MySQL字段方面能够有所帮助.下面学步园小编来讲解下MySQL字段中的枚举是什么意思? MySQL字段中的枚举是什 ...

最新文章

  1. 折叠屏就要来了,适配逼死 Android 开发?
  2. 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  3. linux命令tcpdump
  4. 全国计算机等级考试题库二级C操作题100套(第43套)
  5. 【ASP.NET Web API教程】5.4 ASP.NET Web API批处理器
  6. 我自己关于C语言,编译器,标准库,GUN glibc,CRT ,API之类的理解。
  7. android camera(6)---camera2 拍照流程
  8. 老鸟对菜鸟的一些建议
  9. java使用freemaker自定义路径导出Word关键点讲解版
  10. python rtftotxt_利用python将docx文件转为txt
  11. java pingfang,PingFang sc字体的使用
  12. python写界面c这算法_OpenCV算法精解:基于Python与C.pdf
  13. Windows下安装GitHub客户端
  14. javascript gba游戏模拟器
  15. PCAN-View 软件添加111K波特率选项
  16. 实验二 译码器及其应用
  17. Sketch 插件开发指南
  18. outlook中网址连接打不开解决办法
  19. 魔兽世界正式服哪个服务器稳定,魔兽世界正式服什么职业厉害2021
  20. 微型计算机的特点及其主板构成,第1章 计算机基础知识教案

热门文章

  1. 【飞秋教程】文件断点续传
  2. 她说她女儿(JAVASCRIPT小时的玩伴,也姓杨)
  3. 飞鸽传书2007 一个自己开发的软件
  4. 统一归档助企业撑起信息的保护伞
  5. 什么90%的人,自学python都不能学会,原来问题出在这,赶紧看看!
  6. 学习编程的过程中可能会走哪些弯路,有哪些经验可以参考?
  7. 做技术,未来出路在哪?
  8. thinkpad卡在logo界面_四大系列 一个品牌,超好用的商务伴侣Thinkpad
  9. oracle in 索引_Oracle 性能优化总结
  10. 经济学家忽悠老百姓的“万能公式”