不知道思路对不对,总之样例没过,向各位大佬们求教
查看原帖
不知道思路对不对,总之样例没过,向各位大佬们求教
1793472
lijiaying2406楼主2025/7/26 08:34
#include<bits/stdc++.h>
using namespace std;
int n;
double minxy,sum;
struct nailao{
	double g,h;
	bool use;
}xy[20];
void mj(int x){
	if(x>n){
		minxy=min(minxy,sum);
		return;
	}
	for(int i=1;i<=n;i++){
		if(xy[i].use==0){
			sum+=sqrt((xy[i-1].g-xy[i].g)*(xy[i-1].g-xy[i].g)+(xy[i-1].h-xy[i].h)*(xy[i-1].h-xy[i].h));
			xy[i].use=1;
			mj(x+1);
			xy[i].use=0;
		}
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>xy[i].g;
		cin>>xy[i].h;
	}
	mj(1);
	printf("%0.2lf",sum);
	return 0;
}
#include<bits/stdc++.h>
using namespace std;
int n;
double minxy,sum;
struct nailao{
	double g,h;
	bool use;
}xy[20];
void mj(int x){
	if(x>n){
		minxy=min(minxy,sum);
		return;
	}
	for(int i=1;i<=n;i++){
		if(xy[i].use==0){
			sum+=sqrt((xy[i-1].g-xy[i].g)*(xy[i-1].g-xy[i].g)+(xy[i-1].h-xy[i].h)*(xy[i-1].h-xy[i].h));
			xy[i].use=1;
			mj(x+1);
			xy[i].use=0;
		}
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>xy[i].g;
		cin>>xy[i].h;
	}
	mj(1);
	printf("%0.2lf",sum);
	return 0;
}

2025/7/26 08:34
加载中...