有没有大佬看看最后一个点超了要怎么搞
  • 板块P1433 吃奶酪
  • 楼主Sasori
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/7/15 16:41
  • 上次更新2023/11/3 09:41:44
查看原帖
有没有大佬看看最后一个点超了要怎么搞
286850
Sasori楼主2023/7/15 16:41
#include<bits/stdc++.h>
using namespace std;
int m,n;
double ans=0x3f3f3f3f,sum;
struct z{
	double x,y;
}p[20];
bool a[50];
double j(double x1,double x2,double y1,double y2){
	return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
void dfs(double now,double xz,double yz){
	if(sum>=ans)return;
	if(now==n){
	ans=min(ans,sum);
	return;	
	}
	for(int i=1;i<=n;i++)
	{
		if(a[i]==0){
			a[i]=1;
			sum+=j(xz,p[i].x,yz,p[i].y);
			dfs(now+1,p[i].x,p[i].y);
			a[i]=0;
			sum-=j(xz,p[i].x,yz,p[i].y);
		}
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>p[i].x>>p[i].y;
	}
	dfs(0,0,0);
	printf("%.2f\n",ans);
	return 0;
}```
2023/7/15 16:41
加载中...