为什么RE,本地可以运行,但是运行过程突然报错
  • 板块P1433 吃奶酪
  • 楼主sd_JC
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/3/31 22:37
  • 上次更新2024/4/1 12:59:26
查看原帖
为什么RE,本地可以运行,但是运行过程突然报错
767015
sd_JC楼主2024/3/31 22:37

记录

#include<bits/stdc++.h>
using namespace std;
struct p{
	double x,y;
	bool visit;
	int num;
}ps[16];
int n;
double ans=10000000,f[16][33000]={0};
double dis(p p1,p p2){
	return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));
}
void dfs(p ppp,int step,int mark,double s){
	if(step==n){
		if(ans>s)ans=s;
		return;
	}
	
	for(int i=0;i<n;i++){
		if(ps[i].visit)continue;
		//剪枝
		
		int tmp=mark+1<<i;
		if(f[i][tmp]==0||f[i][tmp]>f[ppp.num][mark]+dis(ps[i],ppp)){
			
			f[i][tmp]=f[ppp.num][mark]+dis(ps[i],ppp);
			ps[i].visit=1;
			
			dfs(ps[i],step+1,tmp,s+dis(ps[i],ppp));
			ps[i].visit=0;
		}
	}
}
int main(){
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>ps[i].x>>ps[i].y;
		ps[i].visit=0;
		ps[i].num=i;
	}
	p pp={0,0,1,0};
	dfs(pp,0,0,0);
	printf("%.2f",ans);
	return 0;
}
2024/3/31 22:37
加载中...