news 2026/3/6 5:18:35

城市交通网络构建

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
城市交通网络构建

【题目描述】

某城市规划局正在整理辖区内的道路数据。该城市共有 n 个路口(编号为 0 到 n-1)以及 m 条连接这些路口的道路。

目前的道路系统比较复杂,包含两种类型:

  1. 单行道:只能从一个路口通行到另一个路口。

  2. 双行道:两个路口之间可以双向互通。

请你根据给定的道路信息,建立一个 n * n 的通达性矩阵,用来直观地展示各路口之间的直接连通情况。

【输入格式】

第一行包含两个正整数 n 和 m (1<=n, m <=100),分别代表路口的数量和道路的数量。

接下来的 m 行,每行包含三个整数 type, u, v (0 <=type<= 1, 0<=u, v < n),描述一条道路的信息:

  • 当 type=0 时:表示这是一条单行道,仅允许从路口 u 通行到路口 v。

  • 当 type=1 时:表示这是一条双行道,路口 u 和路口 v 之间可以互相通行。

【输出格式】

输出一个 n * n 的矩阵。

矩阵的第 i 行第 j 列的数值表示路口 i 到路口 j 的连通状态:

  • 如果值为1,表示存在一条直接道路可以从 i 到达 j;

  • 如果值为0,表示没有直接道路相连。

【输入样例】

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

【输出样例】

0 1 1 0 0 0 0 0 1 0 0 1 0 1 1 0
1. 核心概念

邻接矩阵是图论中最基础的存图方式。其本质是一个二维数组g[i][j]

  • 行与列:代表图中的

  • 数值:代表点与点之间的关系(如连通性或权值)。

    • g[i][j] = 1:表示点i到点j有边。

    • g[i][j] = 0:表示点i到点j无边。

2. 代码实现要点

在处理混合图(同时包含有向边和无向边)时,只需在输入阶段做一个简单的if判断:

  • 有向边u -> v

    • 操作:仅需标记g[u][v] = 1

    • 含义:只能从u去往v,反之不一定。

  • 无向边u <-> v

    • 操作:双向标记,即g[u][v] = 1g[v][u] = 1

    • 含义:既能从uv,也能从vu,等价于两条方向相反的有向边。

3. 复杂度分析
  • 空间复杂度:O(N^2)。

    • 这是邻接矩阵最大的短板。如果 N=10000,这就需要开int g[10000][10000],内存会直接爆炸(约为 400MB),通常题目给的 N <= 1000 时才考虑使用。

  • 查询时间:O(1)。

    • 这是它的最大优势。想要知道点i和点j是否相连,直接查数组g[i][j]即可,速度极快。

4. 易错点提示
  • 索引对应:题目中点的编号通常是从 0 开始(0 到 n-1)还是从 1 开始(1 到 n)。本题是 0 到 n-1,所以循环输出时是i=0; i<n。如果是 1 到 n,则需要i=1; i<=n

  • 初始化:全局变量数组会自动初始化为 0,如果在main函数内部定义数组,记得手动memset清零,否则可能会有随机垃圾值。


#include <iostream> using namespace std; int n,m; int g[101][101]; int main() { cin>>n>>m;//n个点 m条边 for(int i=1;i<=m;i++){ int type,u,v; cin>>type>>u>>v; if(type==0)//有向边 g[u][v]=1; else{//无向边当双向边处理 g[u][v]=1; g[v][u]=1; } } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ cout<<g[i][j]<<" "; } cout<<endl; } return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/3 8:05:43

C++课后习题训练记录Day56

1.练习项目&#xff1a; 题目描述 蓝桥王国的每个快递都包含两个参数&#xff1a;1.快递单号 2.快递城市。 小李是蓝桥王国的一名快递员&#xff0c;每天的快递分拣让他苦不堪言。 于是他想要你帮他设计一个程序用于快递的分拣&#xff08;将不同快递按城市信息分开&#x…

作者头像 李华
网站建设 2026/3/3 18:03:19

学者团队实现摄像头“看见”雷达技术突破

在自动驾驶汽车的世界里&#xff0c;有一场看不见的战争正在悄悄进行着。摄像头能够捕捉丰富的视觉细节&#xff0c;就像人眼一样看到红绿灯、行人和路标&#xff0c;但在雨雾天气中却容易"失明"。雷达则完全相反&#xff0c;它能在任何恶劣天气中稳定工作&#xff0…

作者头像 李华
网站建设 2026/3/4 19:32:24

Open-AutoGLM官方地址变更全解析(2024最全汇总+备用链接)

第一章&#xff1a;Open-AutoGLM地址变更背景与影响近期&#xff0c;Open-AutoGLM 项目的官方代码仓库与文档中心完成了地址迁移&#xff0c;这一变更是为了适应项目治理结构的升级以及提升全球开发者的访问效率。新地址统一整合了多个分散的子项目入口&#xff0c;实现了资源集…

作者头像 李华
网站建设 2026/2/27 13:18:49

Open-AutoGLM性能优化秘籍:让Java服务响应速度提升5倍

第一章&#xff1a;Open-AutoGLM性能优化秘籍&#xff1a;让Java服务响应速度提升5倍在高并发场景下&#xff0c;Java服务的响应延迟常常成为系统瓶颈。Open-AutoGLM作为新一代轻量级模型推理框架&#xff0c;通过深度整合JVM底层机制与智能缓存策略&#xff0c;显著提升了服务…

作者头像 李华
网站建设 2026/2/23 10:00:25

AI智能体技术落地现状深度解析:程序员学习大模型的实用指南

LangChain 2025年Q4调查显示&#xff0c;57.3%组织已将AI智能体部署至生产环境&#xff0c;大型企业(67%)领先。客服(26.5%)和研究分析(24.4%)是主要应用场景&#xff0c;质量(32.9%)和延迟(20.1%)是最大障碍。多模型使用已成常态(75%)&#xff0c;OpenAI GPT占主导(67.8%)&…

作者头像 李华
网站建设 2026/2/23 13:31:48

Open-AutoGLM实战指南(从零搭建AI推理流水线)

第一章&#xff1a;Open-AutoGLM实战指南&#xff08;从零搭建AI推理流水线&#xff09;在现代AI工程实践中&#xff0c;构建高效、可扩展的推理流水线是模型落地的核心环节。Open-AutoGLM作为开源的自动推理框架&#xff0c;支持从模型加载、输入预处理到批量推理与结果后处理…

作者头像 李华