哪里错了啊啊啊(90tps,TLEx1)
查看原帖
哪里错了啊啊啊(90tps,TLEx1)
352918
I_think_so_i_am_here楼主2022/12/21 22:07
#include<bits/stdc++.h>
using namespace std;
long long n;
long double minn=1e9,sum;
long double px[20],py[20];
bool pn[20];
void dfs(int s,int t){
	long double x=px[t],y=py[t];
	if(s>n){
		minn=min(minn,sum);
		return;
	}
	for(int i=1;i<=n;i++){
		if(pn[i])continue;
		long double dis=sqrt((x-px[i])*(x-px[i])+(y-py[i])*(y-py[i]));
		if(sum+dis>minn){
			return;
		}
		sum+=dis;
		pn[i]=true;
		dfs(s+1,i);
		sum-=dis;
		pn[i]=false;
	}
	return;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)cin>>px[i]>>py[i];
	dfs(1,0);
	cout<<fixed<<setprecision(2)<<minn<<endl;
    return 0;
}

最后一个点TLE了

2022/12/21 22:07
加载中...