社区讨论

样例都没过,谁能看看,

P1433吃奶酪参与者 3已保存回复 7

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
7 条
当前快照
1 份
快照标识符
@lo7id76j
此快照首次捕获于
2023/10/27 02:18
2 年前
此快照最后确认于
2023/10/27 02:18
2 年前
查看原帖
我只要90pts
CPP
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iomanip>
#include<algorithm>
#define LL long long
#define uli unsigned long long
using namespace std;
int n;
double x[20],y[20];
double ans=1000000005;
bool used[20];//记录跑没跑过
double f(double a,double b,double c,double d){
	return sqrt((a-c)*(a-c)-(b-d)*(b-d));
}
void d(int k,double s,int cnt){//s,算答案,cnt,计数,k,记录上一个坐标
	if(s>ans) return;//如果s比原先记录的最小答案大就不要了
	if(cnt>=n){//如果到n就返回
		ans=min(ans,s);
		return;
	}
	for(int i=1;i<=n;i++){//从一到n
		if(used[i]==0){//如果能走
			used[i]=1;//标记
			d(i,s+f(x[k],y[k],x[i],y[i]),cnt+1);//下一个dfs
			used[i]=0;//取消标记
		}
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>x[i]>>y[i];
	}
	d(0,0,1);
	printf("%.2lf",ans);
	return 0;
}

回复

7 条回复,欢迎继续交流。

正在加载回复...