40分求助
  • 板块P1433 吃奶酪
  • 楼主Tr_Sup
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/12/31 22:46
  • 上次更新2023/10/24 05:58:18
查看原帖
40分求助
766106
Tr_Sup楼主2022/12/31 22:46

代码如下

#include<bits/stdc++.h>
using namespace std;
int n,x[20],y[20],z[20];
double ans=0xFFFFF,m=0;
double ss(int v,int w){
	return sqrt((x[v]-x[w])*(x[v]-x[w])+(y[v]-y[w])*(y[v]-y[w])); 
}
void dfs(int s,int t,double xx,double yy){
	if(s>n){
		ans=min(m,ans);
	}
	else{
		for(int i=1;i<=n;i++){
			if(z[i]) continue;
			double m1=m;
			m+=ss(t,i);
			z[i]=1;
			dfs(s+1,i,x[i],y[i]);
			z[i]=0;
			m=m1;
		}
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>x[i]>>y[i];
	}
	x[0]=0,y[0]=0;
	dfs(1,0,0,0); 
	cout<<fixed<<setprecision(2)<<ans;
}

感觉思路没错,不知道哪里出了问题
2,4,7,8AC了,3WA了,其余都超时

2022/12/31 22:46
加载中...