社区讨论
样例都没过,谁能看看,
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 条回复,欢迎继续交流。
正在加载回复...