首页 > 其他分享 >[ARC061E] すぬけ君の地下鉄旅行 题解

[ARC061E] すぬけ君の地下鉄旅行 题解

时间:2024-09-30 10:25:33浏览次数:9  
标签:旅行 head int 题解 tot 站点 SPFA ARC061E

题目传送门

一些废话

今天登洛谷的时候发现主页少了一道紫题。

???怎么降绿了 (建议升蓝) ???

AND这是蒟蒻的第一篇题解

简介

  • 很容易地想到,这是一道最短路问题,要求在一个有 \(N\) 个站点和 \(M\) 条地铁线路的图中,从站点 \(1\) 到站点 \(N\) 的最小花费。
  • 每条线路由一个公司运营,乘坐同一公司的线路花费 \(1\) 元,换乘到其他公司的线路需要再花费 \(1\) 元。

思路

算法选择

这里使用 SPFA算法 来解决这个问题。SPFA 算法可以很好地处理带权图中的最短路问题,并且可以处理存在负权边的情况(虽然本题中没有负权边)。

细节处理

建图

本人特别喜欢用 链式前向星

因为它可以存各种图

void ADD(int x,int y,int z) {
	ver[++tot]=y;
	edge[tot]=z;
	Next[tot]=head[x];
	head[x]=tot;
}

//main
memset(head,-1,sizeof(head));
tot=-1;
for(int i = 1;i<=m;i++){
  scanf("%d%d%d",&x,&y,&z);
  ADD(x,y,z);
  ADD(y,x,z);
}

算法实现

  • 定义一个set,用于存储每个节点已经访问过的公司编号,这样可以避免重复计算同一种公司换乘的情况。

  • 定义Find函数,其中x是当前节点,y是要判断的边所属的公司编号。通过检查 \(num[x]\) 集合中是否包含 \(y\) 来确定是否需要换乘

bool Find(int x,int y) {
	if(num[x].count(y)){
		return 0;
	}
	else{
		return 1;
	}
}
  • 跑一遍SPFA

最终结果输出

检查 \(dist[n]\) 的值。如果无法到达站点,输出-1;否则输出 \(dist[n]\) ,即从站点 1 到站点的最小花费。

CODE

标签:旅行,head,int,题解,tot,站点,SPFA,ARC061E
From: https://www.cnblogs.com/xueruhao/p/18441314

相关文章

  • 题解:AT_arc071_c [ARC071E] TrBBnsformBBtion
    首先看到这个奇特的转化方式和常规的数据范围,我们不难想到一定有什么规律。我们可以先想一个转化后的问题:每次询问的两个字符串都可以按照题目要求进行转化,问它们最后能不能转化成同一个字符串。这个问题很简单,我们只需要把两个字符串中的A全都换成BB,最后对\(3\)取模,看看此......
  • 【题解】【模拟,字符串】—— [NOIP2011 普及组] 统计单词数
    【题解】【字符串】——[NOIP2011普及组]统计单词数[NOIP2011普及组]统计单词数题目描述输入格式输出格式输入输出样例输入#1输出#1输入#2输出#2提示1.思路解析2.AC代码[NOIP2011普及组]统计单词数通往洛谷的传送门题目描述一般的文本编辑器都有查找......
  • 【题解】【子集枚举】—— PERKET
    【题解】【子集枚举】——PERKET[COCI2008-2009#2]PERKET题目描述输入格式输出格式输入输出样例输入#1输出#1输入#2输出#2输入#3输出#3提示数据规模与约定说明1.思路解析2.AC代码[COCI2008-2009#2]PERKET通往洛谷的传送门题目描述Perket是一种流行......
  • Luogu P5663 CSP-J2019 加工零件 题解 [ 绿 ] [ 同余最短路 ]
    加工零件:非常好的一道图论题。CCF普及组的题目大概也只有图论出的比较巧妙了。题意简述:给你一张无向图,\(q\)次询问,判断是否存在一条从\(a\)到\(1\)且长度为\(L\)的路径。看到\(L\)很大,我们立刻想到了要撇开\(L\)的限制思考问题。首先,对于一条路径,我们肯定能找到从......
  • Hetao P2071 打字游戏 题解 [ 绿 ] [ 最小生成树 ] [ 动态规划 ] [ 编辑距离 ]
    打字游戏:MST套dp好题。首先看这个数据范围,\(O(n^4)\)把每两个字符串之前的编辑距离求一下很显然吧。然后我们观察一下每一个node的性质,发现他要么自己打完,要么从别人那里复制过来。这个就很像一棵树。建完树之后,我们就得到了一个森林。那么题目就转化为,求出一个边权之和......
  • Windows 笔记本 WiFi 功能消失问题解决
    背景说明许多Windows笔记本用户可能会遇到WiFi功能突然消失的问题。虽然网上有各种说法,但实际上,这个问题通常并非由病毒引起。大多数情况下,问题的根源是驱动程序丢失或笔记本静电干扰导致无线网卡无法正常工作。临时联网在解决WiFi问题期间,需要联网,可以尝试以下方法:使......
  • 题解:P11132 【MX-X5-T4】「GFOI Round 1」epitaxy
    1.做法及证明因为\(n\)一定会被包含在某一区间内,所以最后答案肯定是\(n\)的因数。先给出结论:对于\(n\)的因数\(d\),其合法的充要条件为\(d\lem\),所以我们只需要找到第一个小于等于\(m\)的\(d\)即可。接下来我们来证明。下文用\(i'\)表示以第\(i\)位开头的长度......
  • NEERC2014题解
    A结论题,行着取intn,m;signedmain(void){#ifdefONLINE_JUDGEfreopen("alter.in","r",stdin);freopen("alter.out","w",stdout);#endif read(n),read(m); writeln(n/2+m/2); for(inti=2;i<=n;i......
  • [USACO23JAN] Tractor Paths P 题解
    T4[USACO23JAN]TractorPathsP唯二的两道蓝题之一,但难度至少紫黑之间。思路是这篇题解的。首先一个贪心:跳到与当前区间相连的最靠右的区间肯定是最优的,由此倍增易得第一问。重点在于第二问的求解,我们发现这个东西很麻烦,这时候就需要一些寄巧了。具体来说,前人之述备矣。坑点:D......
  • 题解:AtCoder Beginner Contest AT_abc373_d ABC373D Hidden Weights
    题目传送门题目翻译给你一个NNN个点,MMM条边的有向图,其中边有边......