谁能告诉我这个暴力有什么逻辑错误
  • 板块P1433 吃奶酪
  • 楼主xiaobei10
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/11/26 11:41
  • 上次更新2024/11/26 16:18:49
查看原帖
谁能告诉我这个暴力有什么逻辑错误
1052827
xiaobei10楼主2024/11/26 11:41
#include<bits/stdc++.h>
using namespace std;
struct node{
	int xx,yy;
	int vis;
	double s;
}a[20];
int n;
double sum,ans=9999999.9,num[50];

double d(int v,int w){
	return sqrt((a[v].xx-a[w].xx)*(a[v].xx-a[w].xx)+(a[v].yy-a[w].yy)*(a[v].yy-a[w].yy));
}

void dfs(int x,int y,int step,double ss){
	if(step==n){
		ans=min(ans,ss);
	}
	for(int i=1;i<=n;i++){
		if(a[i].xx==x and a[i].yy==y) continue;
		else{
			if(a[i].vis==0){
				
				num[step]=d(x,i);
				sum+=num[step];
				
				a[i].vis=1;
				
				dfs(a[i].xx,a[i].yy,step+1,sum);
				a[i].vis=0;
				
				sum-=num[step];
			}
		}
	}
	
}
 

int main() {
	
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i].xx>>a[i].yy;
	}
	a[0].vis=1;
	a[0].xx=0;a[0].yy=0;
	dfs(0,0,0,0);
	cout<<ans;
	
    return 0;
}
2024/11/26 11:41
加载中...