看到有人用dfs求最短路,,我们可以看到这道题一共四个点所以n<=4,我们可以使用floyd算法来求最短路

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,k;
int f[10][10];
signed main(){
	std::ios::sync_with_stdio(false);
	std::cin.tie(0); 
	std::cout.tie(0);
	cin>>n>>m>>k;
	for(int i=1;i<=6;i++){
		for(int j=1;j<=6;j++){
			f[i][j]=INT_MAX;//初始化 
		}
	} 
	f[1][2]=n;//坐大巴到小山路西的时间
	f[1][3]=n;//坐大巴到小山路西的时间
	f[2][4]=m;//小山路西走路到公司的时间 
	f[3][4]=k;//坐车要的时间
	for(int u=1;u<=4;u++){
		for(int i=1;i<=4;i++){
			for(int j=1;j<=4;j++){
				//cout<<f[i][j]<<endl;
				f[i][j]=min(f[i][j],f[i][u]+f[u][j]);
			}
		}
	}
	cout<<f[1][4];
	return 0;
}