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

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    int mp[25][25],vis[25],ans[25],sum;
    
    void dfs(int now,int cnt)
    {
        //printf(" %d
    ",ans[0]);
        int i;
        if(cnt==21)
        {
            if(ans[20]!=ans[0]) return;
            sum++;
            printf("%d: ",sum);
            for(i=0; i<20; i++)
                printf(" %d",ans[i]);
            printf(" %d
    ",ans[20]);
            return;
        }
        else
        {
            for(i=1; i<=20; i++)
            {
                if(mp[i][now]==1&&vis[i]==0)
                {
                    vis[i]=1;
                    ans[cnt]=i;
                    dfs(i,cnt+1);
                    vis[i]=0;
                }
            }
        }
        return ;
    }
    int main()
    {
        int i,a,b,c,n;
        memset(mp,0,sizeof(mp));
        for(i=1; i<=20; i++)
        {
            scanf("%d%d%d",&a,&b,&c);
            mp[c][i]=mp[b][i]=mp[a][i]=mp[i][c]=mp[i][b]=mp[i][a]=1;
        }
        while(~scanf("%d",&n)&&n)
        {
            memset(vis,0,sizeof(0));
            sum=0;
            //vis[n]=1;
            ans[0]=n;
            dfs(n,1);
        }
        return 0;
    }
    

    版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/

  • 相关阅读:
    HAOI2018 奇怪的背包
    HAOI2018 苹果树
    骑士游戏
    飞飞侠
    奶牛排队
    寻找道路
    [USACO08JAN]牛大赛Cow Contest
    灾后重建
    [USACO09DEC]牛收费路径Cow Toll Paths
    萌萌哒
  • 原文地址:https://www.cnblogs.com/xryz/p/4848018.html
Copyright © 2011-2022 走看看