用vector 加 pair存图

本文介绍如何利用vector和pair来存储超过二维数组限制的大规模图,并通过一个牛客网上的实例题目来阐述这种存储方法的应用。在给定的题目中,需要找到两个城市之间的最贵费用,通过两次BFS求解树的直径。利用vector> A[maxn]存储无向图的边,A[a].push_back(make_pair(b, c))和A[b].push_back(make_pair(a, c))将边添加到图中。" 106210679,9511995,深度学习基础:从线性回归到神经网络构建,"['深度学习', '神经网络', '梯度下降', '激活函数', '损失函数']
摘要由CSDN通过智能技术生成

前面已经简单的介绍了vector和  pair,目的就是这一章,那就是利用二者去存一些正常的二维数组存不了的图。例如点的个数大于5000的时候,你再用二维数组去存的话,根本不行的,因为内存不允许,这个时候就轮到vector出马了。

我们可以定义一个这样的vector:

vector<pair<int,int> > A[maxn];假如有一个1这个点到2这个点的边,且长度为10,我们便可以把这条边给存储才来,记成:vector<pair<2,10> > A[1],这样我们就把这样的一条边给存储了才来。

下面我们给一道题:牛客上面的一道题。

链接:https://www.nowcoder.com/acm/contest/181/D
来源:牛客网
 

小叶的巡查

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 65536K,其他语言131072K
64bit IO Format: %lld

题目描述

8102年,牛客系列竞赛空前繁荣。为了更好地管理竞赛,小叶决定巡查于各大城市之间,体察民情。所以,从一个城市马不停蹄地到另一个城市成了小叶最常做的事情。小叶有一个钱袋,用于存放往来城市间的路费。

这个国家有一套优秀的交通方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。

如果不在某个城市停

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值