zoukankan      html  css  js  c++  java
  • P1433 吃奶酪(搜索DFS+记忆化)

    emmmmm,我还是看了题解的。。。。尴尬,其实不用记忆化搜索也是可以的。因为我不用也是最后一个点超时。但是我是用的贪心+DFS。。。超时的原因是贪心。。。。mmp,本来加贪心就是为了不超时。。。。

    思路:

      搜索树的构建:就是把这一层的点把所有未访问的点当成孩子,这就构成了搜索树!

      记忆化: 就是把每个点的计算只是算一次,用个大表格记起来。。。尴尬

    #include<iostream>
    #include<algorithm>
    #include<cmath>
    #include<cstdio>
    using namespace std;
    double ans = 10000000;
    double now;
    int n;
    bool vis[20];
    double x[20], y[20];
    double f[20][20];
    
    void dfs(int k, int d){
        if (now >= ans)return;
        if (k == n){ ans = min(ans, now); return; }
        for (int i = 1; i <= n;++i)
        if (!vis[i]){
            if (f[d][i]!=0){
                vis[i] = 1;
                now += f[d][i];    dfs(k + 1, i);    now -= f[d][i];
                vis[i] = 0;
            }
            else{
                vis[i] = 1;
                f[i][d] = f[d][i] = sqrt((x[i] - x[d])*(x[i] - x[d]) + (y[i] - y[d])*(y[i] - y[d]));
                now += f[i][d]; dfs(k + 1, i); now -= f[i][d];
                vis[i] = 0;
            }
        }
    }
    
    int main(){
        cin >> n;
        for (int i = 1; i <= n; ++i)cin >> x[i] >> y[i];
        vis[0] = 1;
        dfs(0, 0);
        printf("%.2lf
    ", ans);
        return 0;
    }
  • 相关阅读:
    多属性量化决策模型
    对称加密与非对称加密
    子网掩码
    网络安全
    万维网WWW、电子邮件email与文件传输FTP
    DHCP协议
    DNS协议
    ARP协议与RARP协议
    springboot WebSocket的使用
    Java调用Python的两种方式
  • 原文地址:https://www.cnblogs.com/ALINGMAOMAO/p/10660815.html
Copyright © 2011-2022 走看看