zoukankan      html  css  js  c++  java
  • DFS 专题 哈密顿绕行世界问题

    注意:标号后面是两个空格。

    # include <cstdio>
    # include <cstring>
    # include <algorithm>
    
    using namespace std;
    
    int n, m, adj[21][3];
    bool vis[21];
    int solu[22];
    
    void dfs(int cur, int cnt)
    {
        int t;
        for (int i = 0; i < 3; ++i)
        {
            t = adj[cur][i];
            if (cnt == 20 && t == m)
            {
                printf("%d:  %d", ++n, m);
                for (int i = 2; i <= 21; ++i)
                    printf(" %d", solu[i]);
                putchar('\n');
                return ;
            }
            else if (vis[t] == false)
            {
                vis[t] = true;
                solu[cnt+1] = t, dfs(t, cnt+1);
                vis[t] = false;
            }
        }
    }
    
    void init(void)
    {
        int x, y ,z;
    
        for (int i = 1; i < 21; ++i)
        {
            scanf("%d%d%d", &x, &y, &z);
            adj[i][0] = min(x, min(y, z));
            adj[i][2] = max(x, max(y, z));
            adj[i][1] = x+y+z - adj[i][0] - adj[i][2];
        }
    }
    
    void solve(void)
    {
        while (scanf("%d", &m), m)
        {
            memset(vis, false, sizeof(vis));
            n = 0, solu[1] = solu[21] = m;
            vis[m] = true;
            dfs(m, 1);
            vis[m] = false;
        }
    }
    
    int main()
    {
        init();
        solve();
    
        return 0;
    }

    /**/

  • 相关阅读:
    【POJ1961】period
    主席树入门
    noip模拟【tea】
    noip模拟【service】
    noip模拟【noname】
    clearfix清除浮动
    九大内置对象
    2017/10/10 jar包错误
    mybatis案例源码详解
    自动类型转换
  • 原文地址:https://www.cnblogs.com/JMDWQ/p/2599387.html
Copyright © 2011-2022 走看看