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

【数据结构OJ】【图论】图综合练习--拓扑排序

题目描述

已知有向图,顶点从0开始编号,求它的求拓扑有序序列。

拓扑排序算法:给出有向图邻接矩阵
1.逐列扫描矩阵,找出入度为0且编号最小的顶点v

2.输出v,并标识v已访问

3.把矩阵第v行全清0

重复上述步骤,直到所有顶点输出为止

--程序要求--

若使用C++只能include一个头文件iostream;若使用C语言只能include一个头文件stdio

程序中若include多过一个头文件,不看代码,作0分处理

不允许使用第三方对象或函数实现本题的要求

输入

第一行输入一个整数t,表示有t个有向图

第二行输入n,表示图有n个顶点

第三行起,输入n行整数,表示图对应的邻接矩阵

以此类推输入下一个图的顶点数和邻接矩阵

输出

每行输出一个图的拓扑有序序列

IO模式

本题IO模式为标准输入/输出(Standard IO),你需要从标准输入流中读入数据,并将答案输出至标准输出流中。

输入样例

2
5
0 1 0 1 1
0 0 1 0 0
0 0 0 0 1
0 0 1 0 0
0 0 0 0 0
7
0 0 0 0 0 0 0
1 0 1 1 0 0 0
1 0 0 0 0 0 0
1 0 1 0 0 0 0
0 0 0 0 0 1 1
0 1 0 0 0 0 0
0 0 0 1 0 1 0
输出样例

0 1 3 2 4 
4 6 5 1 3 2 0 

AC代码

#include <iostream>
using namespace std;int main() {int t;cin >> t;while (t--) {int n;cin >> n;int a[n][n];for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {cin >> a[i][j];}}int rudu[n];for (int i = 0; i < n; i++) {rudu[i] = 0;}for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {if (a[j][i] == 1) {rudu[i]++;}}}int tag[n];for (int i = 0; i < n; i++) {tag[i] = 0;}int sum = 0;while (1) {for (int j = 0; j < n; j++) {if (rudu[j] == 0 && tag[j] == 0) {cout << j << " ";tag[j] = 1;for (int i = 0; i < n; i++) {if (a[j][i] == 1) {rudu[i]--;}}sum++;break;}}if (sum == n) {cout << endl;break;}}}
return 0;
}

http://www.lryc.cn/news/490917.html

相关文章:

  • 模型 I/O 与 LangChain 实践
  • C++:用红黑树封装map与set-1
  • HBU算法设计与分析 贪心算法
  • python pycharm安装教程及基本使用,超详细
  • 变量提升函数提升
  • el-table vue3统计计算数字
  • IDE应当具备的功能
  • Stable Diffusion初步见解(二)
  • 前端框架 react 性能优化
  • RK3568平台开发系列讲解(Input子系统篇)输入子系统介绍
  • 准备阶段 Profiler性能分析工具的使用(一)
  • go-rod vs Selenium:自动化测试工具的比较与选择
  • 探索免费的Figma中文版:开启高效设计之旅
  • 功能齐全,支持协作 | Docker部署一款支持多人共享的私密浏览器『n.eko』
  • 部署实战(二)--修改jar中的文件并重新打包成jar文件
  • Ubuntu24.04——软件包系统已损坏
  • 2024年华为OD机试真题-空栈压数-C++-OD统一考试(E卷)
  • 嵌入式Linux基于IMX6ULL tslib学习总结
  • go中的参数传递是值传递还是引用传递?
  • 记录一种在内核空间向用户空间通知中断的方法
  • .NetCore 过滤器和拦截器 的区别
  • 【笔记】自动驾驶预测与决策规划_Part7_数据驱动的预测方法
  • React渲染相关内容——渲染流程API、Fragment、渲染相关底层API
  • Python中dict支持多个key的方法
  • 丹摩 | 基于PyTorch的CIFAR-10图像分类实现
  • C#变量和函数如何和unity组件绑定
  • AI模型---安装cuda与cuDNN
  • 【大数据学习 | Spark-Core】Spark提交及运行流程
  • 内网渗透横向移动1
  • 现代密码学