无向图的输入和输出问题

大家都知道无向图的定义时这样的:

【定义】一个无向图是一个二元组<E,W>,其中:1、E是非空集合,称为顶点集。2、V是E中的元素构成的无序二元组的集合,称为边集。为了使问题简单化,在以下的讨论时,我们还规定:1、不考虑定点到其自身的边。2、不允许一条边重复出现,即只讨论简单图。

在计算机内部,一个带权的无环的简单无向图的表示和存储是一个很有意思的问题,教科书上已经有过详细的讨论,今天我们来讨论一下另外一个问题,那就是一个带权的无环的简单无向图的输入和输出问题。现在有n个点,分别用1到n表示,一条带权的边分别用起点、终点和权值表示,由于在输入时,常常会输错,但一旦输错我们不方便去修改,因此我们规定,当输入的边前面已经有过输入时一律以最后的为准;输入的权值如果是-1,那么表示这条边不存在;请你统计一下一共有多少条有效的边以及最大权值和最小权值的边。

Input
本问题有多组测试数据,对于每组测试数据,第一行有2个整数n、m,分别表示有n个顶点和接下来的m行输入;接下来的m行输入中,每行有3个整数,分别表示起点、终点和权值,其中权值-1表示没有这条边,即无效边。输入格式见输入样例。

Output
如果存在有效边,那么输出边数、最大权值边和最小权值边;如果没有有效边,那么输出错误。输出格式见输出样例。

Sample Input
5 18
1 3 10
1 4 20
1 5 15
2 1 -1
2 3 13
2 4 16
2 5 -1
3 4 12
3 1 14
3 5 -1
4 1 -1
4 2 20
4 3 -1
4 5 21
5 1 14
5 2 -1
5 3 -1
5 4 15
3 2
1 3 -1
4 6 10
3 4
1 3 -1
1 2 10
2 3 -1
1 2 -1

Sample Output
Edges=5
MaxEdge=20
MinEdge=13
Error !
Error !

Hint
超过点表示范围的视为无效边,其他无效输入请看题意要求。

#include<bits/stdc++.h>
using namespace std;
const int MAXN=1005;
map<pair<int,int>,int>mp
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值