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

图【东北大学oj数据结构11-1】C++

有两种标准方式来表示图 G=(V,E) (其中V顶点的集合, E是边的集合),分别是:邻接表表示和邻接矩阵表示。

邻接表表示由 ∣V∣个数组 Adj[∣V∣]组成列表,第 i 个数组 Adj[i] 存储顶点集中第 i 个顶点的相关信息。对于每个 u∈V,邻接列表 Adj[u]包含所有顶点 v,使得存在边 (u,v)∈E。也就是说,Adj[u]由 G 中与 u 相邻的所有顶点组成。

邻接矩阵表示法由一个大小为∣V∣×∣V∣矩阵组成。其中第 i 行第 j 列的元素为A=aij​。如果 (i,j)∈E 则aij​=1 ,否则aij​=0

编写一个程序,读取由邻接表表示的有向图 G,并打印其邻接矩阵表示。 其中图 G 由 n 个顶点组成,编号从1~n

输入
在第一行中,给出了一个整数 n。
在接下来的 n 行中,顶点 u 的邻接表 Adj[u] 以下列格式给出:
ukv1​v2​…vk​
其中 u 是顶点 ID,k 表示它的度数,vi 是与 u 相邻的顶点的 ID。

输出
如以下示例输出所示,打印 G 的相邻矩阵表示。
在 aij 之间放置一个空格字符。

约束
1≤n≤100

输入样例

4
1 2 2 4
2 1 4
3 0
4 1 3

输出样例

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

#include <iostream>
#include <vector>
#include <iomanip>
#include <algorithm>
 
using namespace std;
 
int main() {
    int n;
    cin >> n;
 
    vector<vector<int>> a(n);//邻接表
    for(int i=0;i<n;i++)
    {
        int u,k;
        cin>>u>>k;
        u--;
        for(int j=0;j<k;j++)
        {
            int v;
            cin>>v;
            v--;
            a[u].push_back(v);
        }
    }
 
    vector<vector<int>> b(n,vector<int>(n,0));//邻接矩阵_初始化为0
    for(int u=0;u<n;u++)
    {
        for(int i=0;i<a[u].size();i++)
        {
            int v=a[u][i];
            b[u][v]=1;
        }
    }
    for(int i=0;i<b.size();i++)
    {
        for(int j=0;j<b[i].size();j++)
        {
            cout<<b[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
}

 


http://www.kler.cn/a/453944.html

相关文章:

  • Thinkphp 使用workerman消息实现消息推送完整示例
  • 游戏引擎学习第62天
  • JS 异步 ( 一、异步概念、Web worker 基本使用 )
  • 全面Kafka监控方案:从配置到指标
  • Jensen-Shannon Divergence:定义、性质与应用
  • 基础12 友元相关
  • kafka的备份策略:从备份到恢复
  • HDR视频技术之十一:HEVCH.265 的 HDR 编码方案
  • IP-trunk,HDLC链路的捆绑
  • XMLHttpRequest的基础知识
  • java中两个系统进行非对称加密,两个系统的公私钥可以用一套吗?
  • CSS系列(38)-- Custom Properties高级应用详解
  • 基于 Python 大数据的计算机就业数据分析系统
  • 网络基础知识--4
  • 实战举例——vue.js组件开发
  • VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比
  • sql-DQL(持续更新中...)
  • OCR(二) TesseractOCR 语言包训练
  • Linux内核 -- UIO (User-space I/O) 简介与使用笔记
  • 使用Grafana中按钮插件实现收发HTTP请求
  • 【C语言】矩阵乘法
  • 如何查看个人电脑ip和修改ip
  • FFmpeg 的常用API
  • 【机器学习】探索机器学习与人工智能:驱动未来创新的关键技术
  • 归并排序:JAVA
  • IntelliJ IDEA 中 Editor > General > Appearance 设置:编辑器的视觉外观和行为