一直输出1e9求调
查看原帖
一直输出1e9求调
1374261
gaohongyuan楼主2025/1/29 15:33
#include<bits/stdc++.h>
using namespace std;

struct node
{
	double x,y;
}a[20];
int n;
bool b[20]={0,1};
double ans=1e9;

void dfs(int k,int last,double sum)
{
	if(k>n)
	{
		ans=min(ans,sum+sqrt(a[last].x*a[last].x+a[last].y*a[last].y));
		return;
	}
	for(int i=1;i<=n;i++)
	if(!b[i])
	{
		b[i]=1;
		dfs(k+1,i,sum+sqrt((a[last].x-a[i].x)*(a[last].x-a[i].x)+(a[last].y-a[i].y)*(a[last].y-a[i].y)));
		b[i]=0;
	}
	
}

int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	cin>>a[i].x>>a[i].y;
	dfs(1,0,0);
	printf("%.2f",ans);
    return 0;
}
2025/1/29 15:33
加载中...