站外题求调
  • 板块题目总版
  • 楼主AFO_wyx
  • 当前回复12
  • 已保存回复12
  • 发布时间2023/1/4 15:18
  • 上次更新2023/10/24 05:36:34
查看原帖
站外题求调
737939
AFO_wyx楼主2023/1/4 15:18

题目描述

一张无向图有 N 个点(编号为 1 ∼N ),M 条边,且保证任意两个点之间最多只有一条边。

请编程求解出,该图中从任意点出发,可以走出的最长路的长度是多少?

请注意:在图的遍历过程中,不会重复访问同一个点。

输入

第 1 行有 2 个整数 N 和 M;

接下来 M 行,每行有 3 个整数 X,Y,L,代表点 X 和点 Y 之间,存在一条长度为 L 的无向边。

输出

输出一个整数,代表图中存在的最长路。

样例输入

4 6
1 2 10
2 3 20
3 4 30
4 1 40
1 3 50
2 4 60

样例输出

150

我的代码:

#include<bits/stdc++.h>
using namespace std;
int n,m,a[1010][1010],ans;
bool f[1010];
void dfs(int x,int sum){
	int i;
	ans=max(ans,sum);
	for(i=1;i<=n;i++){
		if(a[i][x]!=0&&f[i]==false){
			f[i]=true;
			dfs(i,sum+a[i][x]);
			f[i]=false;
		}
	}
}int main(){
	int i,x,y,z;
	cin>>n>>m;
	for(i=1;i<=m;i++){
		cin>>x>>y>>z;
		a[x][y]=z;
		a[y][x]=z;
	}for(i=1;i<=n;i++){
		memset(f,sizeof(f),false);
		f[i]=true;
		dfs(i,0);
	}cout<<ans;
	return 0;
}

总是过不了样例,有没有大佬救救这个蓝名蒟蒻qwq

2023/1/4 15:18
加载中...