当前位置: 首页 > news >正文

B3611 【模板】传递闭包-普及/提高-

B3611 【模板】传递闭包

题目描述

给定一张点数为 nnn 的有向图的邻接矩阵,图中不包含自环,求该有向图的传递闭包。

一张图的邻接矩阵定义为一个 n×nn\times nn×n 的矩阵 A=(aij)n×nA=(a_{ij})_{n\times n}A=(aij)n×n,其中

aij={1,i 到 j 存在直接连边0,i 到 j 没有直接连边 a_{ij}=\left\{ \begin{aligned} 1,i\ 到\ j\ 存在直接连边\\ 0,i\ 到\ j\ 没有直接连边 \\ \end{aligned} \right. aij={1,i  j 存在直接连边0,i  j 没有直接连边

一张图的传递闭包定义为一个 n×nn\times nn×n 的矩阵 B=(bij)n×nB=(b_{ij})_{n\times n}B=(bij)n×n,其中

bij={1,i 可以直接或间接到达 j0,i 无法直接或间接到达 j b_{ij}=\left\{ \begin{aligned} 1,i\ 可以直接或间接到达\ j\\ 0,i\ 无法直接或间接到达\ j\\ \end{aligned} \right. bij={1,i 可以直接或间接到达 j0,i 无法直接或间接到达 j

输入格式

输入数据共 n+1n+1n+1 行。

第一行一个正整数 nnn

222n+1n+1n+1 行每行 nnn 个整数,第 i+1i+1i+1 行第 jjj 列的整数为 aija_{ij}aij

输出格式

输出数据共 nnn 行。

111nnn 行每行 nnn 个整数,第 iii 行第 jjj 列的整数为 bijb_{ij}bij

输入输出样例 #1

输入 #1

4
0 0 0 1
1 0 0 0
0 0 0 1
0 1 0 0

输出 #1

1 1 0 1
1 1 0 1
1 1 0 1
1 1 0 1

说明/提示

对于 100%100\%100% 的数据,1≤n≤1001\le n\le 1001n100,保证 aij∈{0,1}a_{ij}\in\{0,1\}aij{0,1}aii=0a_{ii}=0aii=0

solution

Ford 算法可以认为是一种动态规划,设 d[k][i][j] 为如果用前 k 个点松弛的话,i,j的最短路径,d[k][i][j] = min(d[k-1][i][k] + d[k-1][k][j]) 但是存储时可以省略一个维度 d[i][j] = min(d[i][k] + d[k][j])即可,三层循环。复杂度 O(n^3)

代码

#include <iostream>
#include "bit"
#include "vector"
#include "unordered_set"
#include "unordered_map"
#include "set"
#include "queue"
#include "algorithm"
#include "bitset"
#include "cstring"
#include "cmath"using namespace std;typedef long long ll;
const int N = 1e5 + 5, inf = 1e9 + 1;int n, f[105][105];int main() {cin >> n;for (int i = 1; i <= n; i++)for (int j = 1; j <= n; j++)cin >> f[i][j];for (int k = 1; k <= n; k++)for (int i = 1; i <= n; i++)for (int j = 1; j <= n; j++)if (f[i][k] && f[k][j]) f[i][j] = 1;for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++)cout << f[i][j] << ' ';cout << endl;}return 0;
}

结果

在这里插入图片描述

http://www.dtcms.com/a/414237.html

相关文章:

  • 网上帮别人做网站深圳网站营销公司
  • 国内完美安装 Rust 环境 + VSCode 编写 Hello World 完整指南(2025 最新)
  • 基于 HTML、CSS 和 JavaScript 的智能图像灰度直方图匹配系统
  • 【自然语言处理与大模型】LlamaIndex快速入门①
  • 基于html2web和deepseek实现单词卡片识记功能的web设计
  • 定制开发开源AI智能名片S2B2C商城小程序在智慧零售价值链重构中的价值研究
  • 虚拟机建设网站猎聘网招聘
  • Uvicorn - Python ASGI Web 服务器
  • Ubuntu硬件性能测试工具
  • DragonBalls_One004
  • LinuxC++——gflags框架入门
  • 开源 C# 快速开发(七)通讯--串口
  • 容器化安装新趋势:云原生到边缘计算
  • 【Linux】深入理解Linux的进程(一)
  • 【JAVA】从入门到放弃-03:IDEA、AI插件、工程结构
  • 网站如何做搜索引擎优化精准防恶意点击软件
  • 西安北郊做网站代理网点什么意思
  • 云原生之CNCF 是什么
  • LeetCode算法“无重复字符的最长子串”哈希表+滑动窗口+贪心
  • 使用 TypeScript 实现基于 pgvector 的 LLM 自动化测试用例
  • LeetCode-hot100——验证二叉搜索树
  • CentOS7安装部署K8s
  • 【无标题】使用 Playwright 实现跨 Chromium、Firefox、WebKit 浏览器自动化操作
  • 做网站能用思源黑体吗国内外网站网站
  • 基于Qt的跨平台Word文档导出器WordEx的设计与实现
  • LeetCode 0812.最大三角形面积:三角形面积公式考察
  • LeetCode热题100--994. 腐烂的橘子--中等
  • 杭州做网站优化wordpress整站加密
  • 用Spark+Django打造食物营养数据可视化分析系统
  • 个人用云计算学习笔记 --17(DNS 服务器)