爆搜代码求改
  • 板块学术版
  • 楼主fhzm_kkk
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/12/14 09:57
  • 上次更新2024/12/14 12:04:27
查看原帖
爆搜代码求改
1219419
fhzm_kkk楼主2024/12/14 09:57

#include<bits/stdc++.h>
using namespace std;
int n;
bool vis[109];
double v,ans=DBL_MAX;
struct node{
	int x,y;
	vector<int>g;
}a[109];
void dfs(int step,double cnt){
	if (step==n){
		ans=min(ans,cnt);
		return;
	}
	for (int i=0;i<a[step].g.size();i++)
		if (vis[a[step].g[i]]==0){
			vis[i]=1;
			dfs(a[step].g[i],cnt+
				sqrt((a[step].x-a[a[step].g[i]].x)*(a[step].x-a[a[step].g[i]].x)+
					(a[step].y-a[a[step].g[i]].y)*(a[step].y-a[a[step].g[i]].y))/v);
			if (a[step].x==a[a[step].g[i]].x&&
				a[step].y>a[a[step].g[i]].y)
					dfs(a[step].g[i],cnt+
						sqrt((a[step].y-a[a[step].g[i]].y)/5));
			vis[i]=0;
		}
}
int main(){
	cin>>n>>v;
	for (int i=1;i<=n;i++){
		int z;
		cin>>a[i].x>>a[i].y>>z;
		a[i].g.push_back(z);
		a[z].g.push_back(i);
	}
	dfs(1,0);
	cout<<ans;
	return 0;
}
2024/12/14 09:57
加载中...