• luogu P1433 吃奶酪


    原题链接:https://www.luogu.org/problem/show?pid=1433

    虽然是一道思维难度不大的DFS,但是这其中比较重要的是可行性剪枝(这是本蒟蒻做的第一道剪枝)

    本题的优化点有不少:预处理两点之间的距离,用邻接矩阵存储,搜索时直接调用即可。

    当目前走到的距离已经超过现有的最小值,那么就无需继续搜索下去,直接返回即可。

    (那些register 之类的,都是因为写了个死循环TLE了以为常数问题加的。。。)

    #include<cstdio>
    #include<cmath> 
    #include<algorithm>
    using namespace std;
    double ans=99999999;
    double e[20][20],x[20],y[20];
    int b[20],n;
    void dfs(double sum,int s,int l)
    {
    //    printf("%.2lf %d %d
    ",sum,s,l);
        if(sum>=ans) return;
        if(s==n&&sum<ans) ans=sum;
        else
        {
            for(register int i=1;i<=n;i++)
            {
                if(b[i]==0)
                {
                    b[i]=1;
                    dfs(sum+e[l][i],s+1,i);
                    b[i]=0;
                }
            }
        }
        return;
    }
    int main()
    {
        scanf("%d",&n);
        for(register int i=1;i<=n;i++) scanf("%lf %lf",&x[i],&y[i]);
        for(register int i=0;i<=n;i++)
        {
            for(register int j=0;j<=n;j++)
            {
                if(i==j) continue;
                e[i][j]=sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));
            }
        }
        dfs(0,0,0);
        printf("%.2lf",ans);
        return 0;
    }
  • 相关阅读:
    systemctld 启动理解
    公私钥(证书)理解
    布隆过滤器
    python linux下dbg
    iOS基础尺寸图
    metadataObjectTypes 详解
    pkg_config_path 环境变量设置 教程
    Cloning failed using an ssh key for authentication, enter your GitHub credentials to access private 解决方案
    docker php安装GD扩展
    mysql 隔离级别
  • 原文地址:https://www.cnblogs.com/zeroform/p/7571548.html
Copyright © 2020-2023  润新知