图的存储(边集数组 + 最小边权)
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\)。
📤 输出格式
输出共分两部分:
- 第 \(m\) 行:输出所有边 \(u, v, w\),按输入顺序;
- 第 \(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