80ptc求助
查看原帖
80ptc求助
560968
liyishao1125楼主2023/12/21 20:15
dalao求调只有
#include<bits/stdc++.h>
using namespace std;
const int N=1e7;
int n,cnt;
double x[20],y[20],dist[114][114],ans;
bool vis[100];
void dfs(int dep,int nw,double sum){
	cnt++;
	if(cnt>=N){
		printf("%.2lf",ans);
		exit(0);
	}
	if(dep>n){
		if(sum<ans)ans=sum;
		return ;
	}
	for(int i=1;i<=n;i++){
		if(!vis[i]){
			double t=sum+dist[nw][i];
			if(t>=ans)continue;
			vis[i]=1;
			dfs(dep+1,i,t);
			vis[i]=0;
		}
	}
} 
int main(){
	cin>>n;
	ans=1e6;
	x[0]=0;y[0]=0;
	for(int i=1;i<=n;i++)cin>>x[i]>>y[i];
	for(int i=0;i<=n;i++)
		for(int j=0;j<=n;j++){
			int sum1=(x[i]-x[j])*(x[i]-x[j]);
			int sum2=(y[i]-y[j])*(y[i]-y[j]);
			dist[i][j]=sqrt(sum1+sum2);
		}
	dfs(1,0,0);
	printf("%.2lf",ans);
	return 0;
}
2023/12/21 20:15
加载中...