图的存储(边集数组 + 最小边权)


Submit solution

Points: 100
Time limit: 1.0s
Memory limit: 10M

Author:
Problem type
Allowed languages
C, C++

🚀 图的边集数组存储(带权 + 最小权值边查询)

🧾 题目描述

给定一张 无向带权图,包含 \(n\) 个顶点和 \(m\) 条边。请你用边集数组(Edge List)的方式存储图中所有边,并完成以下任务:

  • 输出所有边的信息,按输入顺序;
  • 找出 所有权值最小的边,按输入顺序输出。

📥 输入格式

第一行包含两个正整数 \(n\) 和 \(m\),表示图的顶点数和边数。

接下来 \(m\) 行,每行三个整数 \(u, v, w\),表示顶点 \(u\) 和顶点 \(v\) 之间有一条无向边,权值为 \(w\)。


📤 输出格式

输出共分两部分:

  1. 第 \(m\) 行:输出所有边 \(u, v, w\),按输入顺序;
  2. 第 \(k\) 行:输出所有权值为 最小权值 的边 \(u, v, w\),按输入顺序,\(k\) 为最小权值边的数量。

✅ 输入输出样例 #1

输入
5 4
1 2 10
2 3 3
3 4 8
4 5 3
输出
1 2 10
2 3 3
3 4 8
4 5 3
2 3 3
4 5 3

✅ 输入输出样例 #2

输入
4 3
1 2 5
2 3 2
1 4 7
输出
1 2 5
2 3 2
1 4 7
2 3 2

📎 数据范围与约定

  • \(1 \leq n \leq 10^5\)
  • \(1 \leq m \leq 2 \times 10^5\)
  • \(1 \leq u, v \leq n\)
  • \(1 \leq w \leq 10^9\)
  • 无重边,无自环

💡 建议边结构(C++)

struct Edge {
    int u, v;
    long long w;
};
vector<Edge> edges;

Comments

There are no comments at the moment.