zoukankan      html  css  js  c++  java
  • 洛谷P1433 吃奶酪 搜索 + 剪枝

    洛谷P1433 吃奶酪
    搜索 + 剪枝
    这道题加了一个最优性剪枝就可以过了
    其实还可以加一个剪枝
    事先预处理好 任意两个点的距离

     1 #include <cstdio>
     2 #include <cmath>
     3 using namespace std ; 
     4 
     5 int n ; 
     6 double x[ 16 ],y[ 16 ],dist[16][16] ; 
     7 double t,mi ; 
     8 bool f[16] ; 
     9 
    10 inline double sqr(double x) 
    11 {
    12     return x*x ; 
    13 }
    14 
    15 inline void dfs(int deep,int u,double sum) 
    16 {
    17     if(deep>n) 
    18     {
    19         if(sum<mi) mi = sum ; 
    20         return ; 
    21     }
    22     for(int i=1;i<=n;i++) 
    23         if(!f[ i ]) 
    24         {
    25             t = sum + dist[i][u] ; 
    26             if(t>=mi) continue ; 
    27             f[ i ] = 1 ; 
    28             dfs(deep+1,i,t) ; 
    29             f[ i ] = 0 ; 
    30         }    
    31 }
    32 
    33 int main() 
    34 {
    35     scanf("%d",&n) ; 
    36     mi = 1e9 ; 
    37     x[ 0 ] = 0 ; y[ 0 ] = 0 ;  
    38     for(int i=1;i<=n;i++) scanf("%lf%lf",&x[ i ],&y[ i ]) ; 
    39     for(int i=0;i<=n;i++) 
    40         for(int j=0;j<=n;j++) 
    41             dist[ i ][ j ] = sqrt( sqr(x[i]-x[j]) + sqr(y[i]-y[j]) ) ; 
    42     dfs(1,0,0) ; 
    43     printf("%.2lf",mi) ; 
    44     return 0 ; 
    45 }
  • 相关阅读:
    三维形体的表面积
    访问所有点的最小时间
    链式队列
    顺序队列
    链栈
    顺序栈
    双向链表
    pyrhon 开始 基础类型
    GDI+_VB6_ARGB
    WindowsPhone自定义控件详解(一)
  • 原文地址:https://www.cnblogs.com/third2333/p/7083823.html
Copyright © 2011-2022 走看看