洛谷 P1433 吃奶酪
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了洛谷 P1433 吃奶酪相关的知识,希望对你有一定的参考价值。
P1433 吃奶酪
dfs,预处理开方的距离再加一个小剪枝
1 #include<algorithm> 2 #include<iostream> 3 #include<cstring> 4 #include<cstdio> 5 #include<cmath> 6 #include<queue> 7 using namespace std; 8 #define inf 1000000 9 int n,num; 10 double ans=inf*1.0,x[10000],y[10000],dis[100][100]; 11 bool vis[100000]; 12 13 void dfs(double now,int num,int prex) 14 { 15 if(now>ans) return ; 16 if(num==n) 17 { 18 ans=min(ans,now); 19 return ; 20 } 21 for(int i=1;i<=n;i++) 22 { 23 if(!vis[i]) 24 { 25 vis[i]=1; 26 dfs(dis[prex][i]+now,num+1,i); 27 vis[i]=0; 28 } 29 } 30 31 } 32 33 int main() 34 { 35 scanf("%d",&n); 36 for(int i=1;i<=n;i++) 37 scanf("%lf%lf",&x[i],&y[i]); 38 for(int i=0;i<=n;i++) 39 for(int j=0;j<=n;j++) 40 if(i!=j) dis[i][j]=sqrt(pow(x[j]-x[i],2)+pow(y[j]-y[i],2)); 41 dfs(0,0,0); 42 printf("%.2lf\n",ans); 43 return 0; 44 }
以上是关于洛谷 P1433 吃奶酪的主要内容,如果未能解决你的问题,请参考以下文章