暴力+卡时有办法过吗
  • 板块P1433 吃奶酪
  • 楼主Neokaye
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/11/27 13:04
  • 上次更新2024/11/27 16:31:11
查看原帖
暴力+卡时有办法过吗
1232851
Neokaye楼主2024/11/27 13:04

代码,过不了hack

#include<bits/stdc++.h>
using namespace std;
const int maxn=2e7;
int n;
int cnt;
double x[16],y[16],dist[16][16];
bool vis[16];
double ans=1e6+5;
void dfs(int dep,int now,double sum){
    cnt++;
    if(cnt>=maxn){
    	printf("%.2lf",ans);
    	exit(0);
	}
	if(dep>n){
		if(sum<ans) ans=sum;
		return ;
	}	
	for(int i=1;i<=n;i++){
		if(!vis[i]){
			double t=sum+dist[now][i];
			if(t>=ans) continue;
			vis[i]=1;
			dfs(dep+1,i,t);
			vis[i]=0; 
		}
	}
} 
int main(){
	//freopen("P1433_10.in","r",stdin);
	scanf("%d",&n);
	x[0]=0;y[0]=0;
	for(int i=1;i<=n;i++){
		scanf("%lf%lf",&x[i],&y[i]);
	}
	for(int i=0;i<=n;i++){
		for(int j=0;j<=n;j++){
			dist[i][j]=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
		}
	}
	dfs(1,0,0);
	printf("%.2lf",ans);
	return 0;
}

能优化过去吗?

2024/11/27 13:04
加载中...