求调
查看原帖
求调
1079493
Hy13_xsm楼主2024/6/8 13:16
#include<bits/stdc++.h>
using namespace std;
struct node{
	int id;
	double val;
};
int n,m,s,t;
double x[105],y[105],ans=INT_MAX;
bool vis[105];
vector<node>a[1005];
void dfs(int u,double dis)
{
	if(dis>ans)return;
	if(u==t)
	{
		ans=dis;
		return;
	}
	for(int i=0;i<a[u].size();i++)
	{
		int v=a[u][i].id;
		double w=a[u][i].val;
		if(!vis[v])
		{
			vis[u]=1;
			dfs(v,dis+w);
			vis[u]=0;
		}
	}
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	cin>>x[i]>>y[i];
	cin>>m;
	for(int i=1;i<=m;i++)
	{
		int p,q;
		cin>>p>>q;
		double k=sqrt(pow(abs(x[p]-x[q]),2)+pow(abs(y[p]-y[q]),2));
		a[p].push_back({q,k});
		a[q].push_back({p,k});
	}
	cin>>s>>t;
	dfs(s,0);
	cout<<fixed<<setprecision(2)<<ans;
	return 0;
}

MLE 怎么办?

2024/6/8 13:16
加载中...