摘要: 会一直慢慢写的... 一、一些技巧(位运算) 取出整数n在二进制表示下的第k位,检验是否为1 (n>>k)&1 求最后完备状态(假设都是1),有n个待枚举状态,结果是(1<<n)-1 要只取i这一位是1,其他都是0,那么(1<<(i-1)) 1<<n=2^n n<<1=2n 之前的状态(异或的使用) 阅读全文
posted @ 2018-09-20 19:35 cellur925&Chemist 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 Hamilton路径的定义:从0(起点)到n-1(终点)不重不漏地经过每个点恰好一次。 由于数据范围非常小,考虑状压。如NOIP2017宝藏一题,把状态压缩设为n个点是否已到达的二进制数。1表示到达过,0表示没到达过。 设计状态$f[i][j]$表示当前状态为i,目前处于点j的最短路径。 阅读全文
posted @ 2018-09-20 19:34 cellur925&Chemist 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 这个问题是来源于lydrainbowcat老师书上讲排序的一个扩展。当时讲的是奇数码问题,其实这种问题有两种问法:一种局面能否到另一种局面、到达目标局面的最小步数。 本文部分内容引用于lydrainbowcat《算法竞赛进阶指南》。 一、判定问题是否有解 我们可以由简至难看这样几个问题: 阅读全文
posted @ 2018-09-20 09:53 cellur925&Chemist 阅读(833) 评论(0) 推荐(0) 编辑