![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
状态压缩
goto_1600
我何来寂寞,哪有寂寞可言。
展开
-
1131. 拯救大兵瑞恩
解题思路:题目大意是要到一个位置,但是图中会有对应的门,而且门的种类不同,需要不同种钥匙来打开,不同种的钥匙分别放在地图中的某个位置,问最多要多少步才能到。 这道题的解题思路也是非常的取巧,他并没有告诉你每个点之间的边,这个需要我们去构造,并且还有墙,墙是不可逾越的,那么我们需要用一个set来维护两条边之间是否存在墙或者门,我们初始的dist一维数组是肯定不够的,要开第二个状态[j],这里的状态应...原创 2020-04-28 11:20:04 · 266 阅读 · 0 评论 -
最短距离(状态压缩)
给定一张 n 个点的带权无向图,点从 0~n-1 标号,求起点 0 到终点 n-1 的最短Hamilton路径。 Hamilton路径的定义是从 0 到 n-1 不重不漏地经过每个点恰好一次。 输入格式 第一行输入整数n 。 接下来n 行每行n个整数,其中第i行第j个整数表示点i到j 的距离(记为a[i,j])。 对于任意的x,y,z ,数据保证 a[x,x]=0,a[x,y]=a[y,x] 并且...原创 2020-03-14 12:17:26 · 337 阅读 · 0 评论 -
蒙德里安的梦想 状态压缩
求把NM的棋盘分割成若干个12的的长方形,有多少种方案。 例如当N=2,M=4时,共有5种方案。当N=2,M=3时,共有3种方案。 如下图所示: 2411_1.jpg 输入格式 输入包含多组测试用例。 每组测试用例占一行,包含两个整数N和M。 当输入用例N=0,M=0时,表示输入终止,且该用例无需处理。 输出格式 每个测试用例输出一个结果,每个结果占一行。 数据范围 1≤N,M≤11 输入样例: ...原创 2020-03-14 12:04:14 · 240 阅读 · 0 评论 -
蓝桥训练·糖果 状态压缩+dfs
糖果店的老板一共有 M 种口味的糖果出售。 为了方便描述,我们将 M 种口味编号 1∼M 。 小明希望能品尝到所有口味的糖果。 遗憾的是老板并不单独出售糖果,而是 K 颗一包整包出售。 幸好糖果包装上注明了其中 K 颗糖果的口味,所以小明可以在买之前就知道每包内的糖果口味。 给定 N 包糖果,请你计算小明最少买几包,就可以品尝到所有口味的糖果。 输入格式 第一行包含三个整数 N,M,K 。 接下来...原创 2020-03-08 23:28:27 · 296 阅读 · 0 评论