首页 > 其他分享 >3.哈密顿绕行世界问题

3.哈密顿绕行世界问题

时间:2023-04-06 22:45:31浏览次数:43  
标签:哈密顿 int 世界 dfs st 绕行 state path include

原题链接:https://www.acwing.com/problem/content/description/4232/

思路很像全排列,运用压缩状态存储,注意细节

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;

const int N=25;
bool st[N][N];
int path[N];
int n,cnt;

void dfs(int u,int state,int k)
{
    if(k!=0&&k!=20&&u==n) return;
    if(k==20){
        if(u==n)
        {
            cout<<cnt++<<":  ";
            for(int i=0;i<=k;i++) cout<<path[i]<<' ';
            cout<<endl;
        }
        return;
    }
    for(int i=0;i<20;i++)
    {
        if(!st[u][i+1]) continue;
        if(state>>i&1) continue;
        path[k+1]=i+1;
        dfs(i+1,state+(1<<i),k+1);
    }
}

int main()
{
    for(int i=1;i<=20;i++)
    {
        int a,b,c;
        cin>>a>>b>>c;
        st[i][a]=st[a][i]=st[b][i]=st[i][b]=st[c][i]=st[i][c]=true;
    }
    while(cin>>n,n)
    {
        cnt=1;
        path[0]=n;
        dfs(n,0,0);
    }
    return 0;
}

标签:哈密顿,int,世界,dfs,st,绕行,state,path,include
From: https://www.cnblogs.com/linearlearn/p/17294485.html

相关文章

  • 大咖说丨云计算:数字世界的“中枢神经”
    随着数字化转型进程加速,云计算作为重塑商业模式、加速数字经济发展的关键引擎,其重要性愈发凸显。未来已来,身处数字宇宙中,云计算的角色又将如何转变?近日,中国信息通信研究院云计算与大数据研究所副所长栗蔚,分享了她对于云计算与数字原生新实体的独到见解:数字化时代,云计算本质已经发生......
  • 代码能改变世界,资本不同情情怀,产品刚开始考虑商业化并不是坏事
    代码能改变世界,资本不同情情怀。这年头不提早布局如何利用产品赚钱,等真的撑不住了只能关门大吉了。这一点,csdn从一开始就做的很好,虽然我也一直骂csdn好多人全是抄袭搬运狗,博客质量低,但是人家广告,会员,付费专栏以及提供资源下载服务等收入,让写博客的人赚到钱,有激励写更多的东西,让平......
  • 在信息过载的世界里,我们需要怎样的汽车仪表盘?
    ▲奥迪液晶仪表盘豪华品牌使用液晶仪表的最大动力是提升整车的豪华感及驾驶感受,而对于混动车型、纯电动车型来说,需要呈现的信息比燃油动力汽车多很多,传统仪表已经无法承载相应的需求,全液晶仪表已经是混动车型、纯电动车型的刚需。随着排放标准的日益严苛,混动车型、纯电动车型是大势......
  • 又一国产开源项目走向世界,百度RPC框架Apache bRPC正式成为ASF顶级项目
    2023年1月26日,Apache软件基金会(ASF)官方正式宣布ApachebRPC正式毕业,成为Apache的顶级项目。我听到这个消息是挺开心的,毕竟是又一款由国人主导的apche顶级项目,再次证明国内在开源界正在发挥越来越重要的作用。ApachebRPC的历史ApachebRPC的前身是百度内部的一个RPC框......
  • 世界杯神之队
    众所周知,每个国家的球队都有自己的长处,在不同规则下最强球队也有所不同。而小M制定的规则是输球场数最少,这是有道理的,因为输球场数可以评判一个球队的稳定性。输球场数越少,就说明稳定性越强,实力越高。中国队为什么是神?首先是犯下傲慢之罪的美国队,多次杀入淘汰赛,就露出不屑的笑......
  • 洛谷 P9009 [入门赛 #9] 牵连的世界 (Hard Version) 题解
    P9009[入门赛#9],真9。这是一道hack题,即你需要自造符合题意的数据使题中所给程序无法AC。Task01看数据范围知一切,显然有\(-2\times10^9\lea_i\le2\times10^9\),因此\(a_i\)可能为负数。注意C/C++中的取模%(mod)运算实质上是为取余运算(rem)对于整型数a,b来说......
  • 世界地形图多国高清珍藏版
    世界地形  亚洲                                                欧洲                          ......
  • three.js 使用 getWorldPosition 获取世界坐标
    记录一下项目中的需求,组合后旋转,解组后需要模型位置为旋转后位置disCombinationModel(ModelArry,type){//判断是否有选中if(ModelArry.length===1){constob=ModelArry[0]//判断是否是组合if(ob.typeName==='combination'){......
  • 世界的黑暗
    未经他人苦,莫劝他人善。压死骆驼的不是最后一根稻草,而是你站在道德制高点上去批判一个人,不是人人都会遇到南河和平安哥,你所谓的就一句开玩笑的话,可能就造成了一个人的死亡,这个世界到底怎么了?但总有些人憋着一口气,想去拯救世界,但发现自己是多么的渺小,就觉得很无奈。只想说一句未......
  • 攻防世界-catcat-new
    一道有关任意文件读取,Linux敏感文件,flask-session伪造的题目 一、基础知识(参考链接)/etc/passwd该文件储存了该Linux系统中所有用户的一些基本信息,只有root权限才可以修改。其具体格式为   用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell(以冒号作为......