状态压缩求哈密顿回路

#include<bits/stdc++.h>
using namespace std;
bool dp[23][1<<21];
char s[22][22];
bool vis[35];
int ans[25];
int n,f=0;
bool dfs(int now,int cur,int cnt)
{ans[cnt]=now;if(cnt==n){if(s[now][1]=='W'||s[1][now]=='L'){f=1;for(int i=1;i<n;i++){cout<<ans[i]<<' ';}cout<<ans[n]<<endl;return 1;}return 0;}int x=1;for(int i=2;i<=n;i++){x<<=1;int st=cur|x;if(!vis[i]&&(s[now][i]=='W'||s[i][now]=='L')&&!dp[i][st]){vis[i]=1;if(dfs(i,st,cnt+1))return 1;vis[i]=0;}dp[i][st]=1;}return 0;
}
int main()
{//int n;cin>>n;for(int i=1;i<=n;i++){for(int j=1;j<=n;j++)cin>>s[i][j];}vis[1]=1;dfs(1,1,1);if(f==0)cout<<"No Solution"<<endl;
}

pat 食物链(状态压缩求哈密顿回路)相关推荐

  1. AcWing 91. 最短Hamilton路径(状态压缩DP+哈密顿回路)

    题目链接 https://www.acwing.com/problem/content/description/93/ 思路 这道题看似像一个最短路,但是并不是,因为我们要求对于每一个点都经过,但是最 ...

  2. 回路计数蓝桥杯(状态压缩dp)

    第一次碰到状态压缩求方法数,记录一下 回路计数 题目描述 蓝桥学院由 2121​​​ 栋教学楼组成,教学楼编号 11​​ 到 2121​​.对于两栋教学楼 aa​​ 和 bb​,当 aa​ 和 bb​ ...

  3. HDU4026 Unlock the Cell Phone [状态压缩DP]

    一开始看范围特别小就写搜索了...结果自己随便出了个4*4就过不了了.. 其实就是状态压缩DP,求哈密顿回路要多少条,只是要注意判断两点是否可以划线就可以了. #include <stdio.h ...

  4. 树上启动式合并问题 ---- D. Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths [状态压缩+树上启发式合并]

    题目链接 题目大意: 一棵根为1 的树,每条边上有一个字符(a−va−va−v共22种). 一条简单路径被称为Dokhtar−kosh当且仅当路径上的字符经过重新排序后可以变成一个回文串. 求每个子树 ...

  5. 0x56. 动态规划 - 状态压缩DP(习题详解 × 7)

    目录 Problem A. 最短Hamilton路径 ProblemB. 蒙德里安的梦想 Problem C. Corn Fields Problem D. 小国王 Problem E. 炮兵阵地 P ...

  6. HDU 4352 数位dp + LIS(nlogn) + 状态压缩

    #define xhxj (Xin Hang senior sister(学姐))  If you do not know xhxj, then carefully reading the entir ...

  7. BZOJ1688|二进制枚举子集| 状态压缩DP

    Disease Manangement 疾病管理 Description Alas! A set of D (1 <= D <= 15) diseases (numbered 1..D) ...

  8. POJ2688状态压缩(可以+DFS剪枝)

    题意:       给你一个n*m的格子,然后给你一个起点,让你遍历所有的垃圾,就是终点不唯一,问你最小路径是多少? 思路:       水题,方法比较多,最省事的就是直接就一个BFS状态压缩暴搜就行 ...

  9. hdu4909 状态压缩(偶数字符子串)

    题意:       给你一个字符串,里面最多有一个'?','?'可以表示'a' - 'z',也可以什么都不表 示,这里要明确,什么都不表示不是不存在的意思,当aa什么都不表示的时候aa 也不等于aa? ...

最新文章

  1. 你知道吗?Workspot属于二级VDI平台?
  2. JVM学习笔记之四:分代垃圾回收
  3. PMBOK项目管理PMI主义\IPMA概述
  4. 使用MCI方法操作声音文件
  5. iOS 打包上传AppStore
  6. java8 list转map
  7. Android RecyclerView布局动画
  8. 【SemiDrive源码分析】【驱动BringUp】40 - Touch Panel 触摸屏调试 (Android侧)
  9. 数据分析实践——如何搭建数据指标体系(抖音为例)
  10. 数据库中违反外键约束的情况
  11. Allegro如何更改铜皮的网络操作指导
  12. REST Assured 22 - JSON
  13. Linux多线程服务端编程学习(四)finger服务的实现
  14. 三子棋小游戏(超详细)
  15. BI工具是什么,有什么用,怎么用?
  16. 极品工控插件 iocomp 中 iXYPlotX1配置全面解析
  17. Echarts地图china.js
  18. .NET 控件集 ComponentOne 2018V2正式发布,提供轻量级的 .NET BI 仪表板
  19. Oracle - UTL_FILE包之详解
  20. “PS”制作“logo”

热门文章

  1. tf.nn.embedding_lookup()的用法
  2. https://blog.csdn.net/blmoistawinde/article/details/84329103
  3. 全文翻译(全文合集):TVM: An Automated End-to-End Optimizing Compiler for Deep Learning
  4. Nucleus 实时操作系统中断(上)
  5. 一种新的高级抖动分离解析方法
  6. 2021年大数据ELK(十九):使用FileBeat采集Kafka日志到Elasticsearch
  7. Django 上传图片和Admin站点5.2
  8. baseUrl must end in /: http://v.juhe.cn/toutiao/index
  9. android 创建 file 文件,文本 并写入内容
  10. thymeleaf+layui 展示table 报500