1. 程式人生 > >#深搜#洛谷 1433 吃乳酪

#深搜#洛谷 1433 吃乳酪

首先這道題是在深搜出現的,所以深搜程式碼。

#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
double sqr(double x){return x*x;}
int n; bool v[16]; double s,ans=1e17-1,f[16][16],x[16],y[16];
void dfs(int now,int dep){
    if (dep==n) ans=min(ans,s);
    if (dep==n||s>ans) return
;//大過最小值肯定不行 v[now]=1; for (int i=1;i<=n;i++){ if (!v[i]){ s+=f[now][i]; dfs(i,dep+1); s-=f[now][i]; } } v[now]=0; } int main(){ scanf("%d",&n); 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++) f[i][j]=sqrt(sqr(x[i]-x[j])+sqr(y[i]-y[j]));//勾股預處理 dfs(0,0); printf("%.2lf",ans); return 0; }