90pts WA #3 #12 #13求助
  • 板块P1433 吃奶酪
  • 楼主PanHOVER
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/11/22 18:39
  • 上次更新2023/11/22 20:31:35
查看原帖
90pts WA #3 #12 #13求助
548741
PanHOVER楼主2023/11/22 18:39
#include<bits/stdc++.h>
using namespace std;
const int MaxN=20;
double dp[1<<MaxN][MaxN];
double x[MaxN],y[MaxN];
int n,fin;

double siz(int x1,int y1,int x2,int y2){
	return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}

double dfs(double nx,double ny,int k,int data){
	if(dp[data][k])	return dp[data][k];
	double ans=0x3F3F3F3F;
	for(int i=0;i<n;i++){
		if(data&(1<<i))	continue;
		ans=min(ans,siz(nx,ny,x[i],y[i])+dfs(x[i],y[i],i,data|(1<<i)));
	}
	return dp[data][k]=((ans==0x3F3F3F3F)?0:ans);
}
int main(){
	cin>>n;
	for(int i=0;i<n;i++)	fin|=(1<<i);
	for(int i=0;i<n;i++)	cin>>x[i]>>y[i];
	printf("%.2lf",dfs(0,0,17,0));
} 
2023/11/22 18:39
加载中...