HDU 2807 The Shortest Path 矩阵运算+最短路
来源:互联网 发布:四川大学网络教育平台 编辑:程序博客网 时间:2024/06/05 15:48
题目链接
http://acm.hdu.edu.cn/showproblem.php?pid=2807
题意
给定n个m*m的矩阵,对于A矩阵,C矩阵,如果存在B矩阵满足A*B = C,那么图中A->B有条权值为1的边。求最短路
思路
蛮简单的一题居然给我写T了。建图直接按照题意描述建,跑Floyd获取最短路。
#include<cstdio>#include<queue>#include<iostream>#include<vector>#include<map>#include<cstring>#include<string>#include<set>#include<stack>#include<algorithm>#define cle(a) memset(a,0,sizeof(a))#define inf(a) memset(a,0x3f,sizeof(a))#define ll long long#define Rep(i,a,n) for(int i=a;i<=n;i++)using namespace std;#define INF2 9223372036854775807llconst int INF = ( 2e9 ) + 2;const ll maxn = 90;int mp[maxn][maxn][maxn];int c[maxn][maxn],res[maxn][maxn];int n,m;void mul(int b[maxn][maxn],int c[maxn][maxn]){ int t; memset(res,0,sizeof(res)); for(int i=1;i<=m;i++) for(int j=1;j<=m;j++) { for(int k=1;k<=m;k++) res[i][j]+=b[i][k]*c[k][j]; }}bool same(int a[maxn][maxn]){ for(int i=1;i<=m;i++) for(int j=1;j<=m;j++) if(res[i][j]!=a[i][j])return false; return true;}int main(){ while(~scanf("%d%d",&n,&m)&&(n+m)) { memset(c,0,sizeof(c)); for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) for(int k=1;k<=m;k++) scanf("%d",&mp[i][j][k]); } for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { if(i==j)continue; mul(mp[i],mp[j]); for(int k=1;k<=n;k++) { if(k!=i&&k!=j&&same(mp[k])) c[i][k]=1; } } for(int k=1;k<=n;k++) for(int i=1;i<=n;i++) { if(c[i][k]==0)continue; for(int j=1;j<=n;j++) if(c[k][j]!=0) { if(c[i][j]==0) c[i][j]=c[i][k]+c[k][j]; if(c[i][j]>c[i][k]+c[k][j]) c[i][j]=c[i][k]+c[k][j]; } } int q; scanf("%d",&q); for(int T=0;T<q;T++) { int u,v; scanf("%d%d",&u,&v); if(c[u][v]) printf("%d\n",c[u][v]); else printf("Sorry\n"); } }}
阅读全文
0 0
- HDU 2807 The Shortest Path 矩阵运算+最短路
- HDU-2807 The Shortest Path 最短路
- 【HDU】2807 The Shortest Path 最短路
- HDU The Shortest Path 矩阵的最短路
- HDU 2807 The Shortest Path(最短路+矩阵快速比较)
- hdu 2807 The Shortest Path(最短路)
- hdu 2807 The Shortest Path 优化矩阵运算+floyd
- hdu shortest path 快速矩阵比较 + 最短路
- Hdu 2807 The Shortest Path 矩阵相乘
- hdu 2807 The Shortest Path(矩阵)
- 【HDU】4725 The Shortest Path in Nya Graph 最短路
- 【最短路】 HDU 4725 The Shortest Path in Nya Graph
- hdu 4725 The Shortest Path in Nya Graph(最短路)
- HDU 4725 The Shortest Path in Nya Graph 最短路
- HDU 4725 The Shortest Path in Nya Graph(最短路)
- HDU 2807 The Shortest Path(最短路构造+Floyed算法)
- HDU 3631 Shortest Path 最短路
- HDU 4479 Shortest path(最短路)
- Java多线程中内存的可见性
- 小马哥四轴学习(2)
- Hadoop Shell命令(基于linux操作系统上传下载文件到hdfs文件系统基本命令学习)
- ios通过文件地址获取本地文件大小
- 欢迎使用CSDN-markdown编辑器
- HDU 2807 The Shortest Path 矩阵运算+最短路
- JS笔记 —— 回调函数二
- Android6.0动态权限设置 第三方开源库permissiongen使用封装
- [置顶] VS自带工具:dumpbin的使用
- 在UBUNTU 16.04中安装为知笔记deb包
- hadoop集群运行jps命令以后Datanode节点未启动的解决办法
- 比iPhone8更值得期待的iOS11究竟有什么魔力?
- 系统学习ARM之四 --GNU的伪指令集
- 人工智能都要进小学了,你还在等什么?