poj 3613(最短路)

news/2024/7/6 1:39:24

题意:求解经过不多于某边数的最短路

思路:矩阵连乘,乘的次数就是不多于某边数的最短路,题目给出的顶点需要映射处理

View Code
 1 #include<iostream>
 2 #include<map>
 3 #include<stdio.h>
 4 #include<string.h>
 5 using namespace std;
 6 #define N 202
 7 struct matrix{
 8     int f[N][N];
 9     matrix(){
10         memset(f,0x3f,sizeof(f));
11     }
12 };
13 int num;
14 matrix mul(matrix a,matrix b)
15 {
16     matrix c;
17     for(int i=1;i<=num;i++)
18     for(int j=1;j<=num;j++)
19     for(int k=1;k<=num;k++)
20     {
21         c.f[i][j]=min(c.f[i][j],a.f[i][k]+b.f[k][j]);
22     }
23     return c;
24 }
25 matrix pow(matrix m,int n)
26 {
27     if(n==1)return m;
28     matrix tmp=pow(m,n/2);
29     if(n&1)return mul(mul(tmp,tmp),m);
30     return mul(tmp,tmp);
31 }
32 map<int,int> mp;
33 int main()
34 {
35     int n,t,s,e;
36     num=0;
37     scanf("%d%d%d%d",&n,&t,&s,&e);
38     mp.clear();
39     matrix c;
40     for(int i=1;i<=t;i++)
41     {
42         int a,b,w;
43         scanf("%d%d%d",&w,&a,&b);
44         if(mp[a]==0)mp[a]=++num;
45         if(mp[b]==0)mp[b]=++num;
46         c.f[mp[a]][mp[b]]=c.f[mp[b]][mp[a]]=w;
47     }
48     pow(c,1);
49     matrix out=pow(c,n);
50     cout<<out.f[mp[s]][mp[e]]<<endl;
51     return 0;
52 }

 

转载于:https://www.cnblogs.com/huangriq/archive/2012/05/12/2497662.html


http://www.niftyadmin.cn/n/3032409.html

相关文章

Netty——BIO,NIO,AIO精讲

目录 0、总结&#xff1a; 一、BIO(Blocking IO) 同步阻塞模型&#xff0c; 二、NIO(Non Blocking IO) 同步非阻塞 三、AIO(NIO 2.0) 异步非阻塞 BIO、 NIO、 AIO 对比&#xff1a; 0、总结&#xff1a; 1、BIO(Blocking IO)同步阻塞模型&#xff0c;一个客户端连接对应一个处理…

6. 抽象类和接口

1. 抽象类 当我们的方法没有具体的实现,那么这个时候我们可以将这个方法定义为抽象方法,把定义这个方法的类定义为抽象类. //抽象类 public abstract class Shape {public int a;public static int b ;public void func() {}//抽象方法abstract public void draw();}使用 abs…

jsp到servletURL编码问题

在servlet中获取的jsp表单内容 java.net.URLDecoder.decode(body,"UTF-8");用这个方法进行编码就能获取到中文字符了.转载于:https://www.cnblogs.com/wysAC666/p/10361286.html

Netty02——核心功能与线程模型精练

目录 一、Netty初探 1.1、Netty的使用场景&#xff1a; 二、Netty线程模型 三、Netty模块组件 四、Netty通讯示例 五、ByteBuf详解 六、Netty实战聊天室系统 一、Netty初探 NIO 的类库和 API 繁杂&#xff0c; 使用麻烦&#xff1a; 需要熟练掌握Selector、 ServerSock…

轻量级流程图控件GoJS最新版本v2.1.42发布,十项功能修复 | 附下载

GoJS是一款功能强大&#xff0c;快速且轻量级的流程图控件&#xff0c;可帮助你在JavaScript 和HTML5 Canvas程序中创建流程图&#xff0c;且极大地简化您的JavaScript / Canvas 程序。 点击下载GoJS最新版 如果您对该图表控件感兴趣&#xff0c;欢迎加入图表控件QQ交流群&…

移动互联网服务客户端开发技巧系列

基于网络的客户端开发技巧——第一篇http://www.1000phone.net/thread-8058-1-1.html基于网络的客户端开发技巧——第二篇Webview及正则http://www.1000phone.net/thread-8061-1-1.html基于网络的客户端开发技巧——第三篇上下拖动切换页面http://www.1000phone.net/thread-806…

TeeChart for .NET图表控件如何图例控制

TeeChart for .NET是优秀的工业4.0 WinForm图表控件&#xff0c;官方独家授权汉化&#xff0c;集功能全面、性能稳定、价格实惠等优势于一体。TeeChart for .NET 中文版还可让您在使用和学习上没有任何语言障碍&#xff0c;至少可以节省30%的开发时间。 点击立即下载最新版Tee…

使用openssl模拟CA和CA证书的签发

使用openssl模拟CA和CA证书的签发 当使用ssl/tls进行加密通信时&#xff0c;必须要有数字证书。若通信只限制在局域网内&#xff0c;可以不向第三方机构申请签发证书&#xff0c;可以通过openssl模拟CA(Certificate Authority)&#xff0c;并通过该CA签发证书。下文讲述在Cento…