随笔分类 - bfs
摘要:Codevs 传送门我们可以用二进制数来表示状态(状态压缩),1代表患病,0代表不患病。 把每一种药对人的影响分别用两个数记录下来: 对于治病,我们用0代表治病,1代表无影响,我们与当前状态做一下 and运算,就把病治好啦。 对于患病,我们用1代表患病,0代表无影响,我们与当前状态做...
阅读全文
摘要:luogu 传送门bfs,像输入一样我们用一个数来表示状态,因为不能开一个9位的数组,又因为如果数的八位确定,那么最后一位就能确定,所以我们可以开一个8位的数组来记录这个状态是否进过队。重点是将0与其它位转换,基于九宫格的特点,我们只能将0与和它相距 1 -1 3 -3 位的数字交换...
阅读全文
摘要:luogu 传送门bfs拓展嘛。 不过这里有一点特别之处,就是记录状态时要三维,f[i][j][0/1],代表到了(i , j)这个点是否使用过向量。 在bfs中往四面走,如果没有使用过向量,就再拓展一下使用向量的。(还是比较容易啦)#include#include#include#...
阅读全文
摘要:luogu 传送门 搞了半天,终于搞了出来。 以前写过一个暴力70分的做法(点这里)在70分的基础上: 注意到只有空格在指定棋子旁边才有意义,所以可以O(n^2)记录状态,记录空格在指定棋子的哪个方向。 因为询问数比较多,所以可以预处理出来【指定棋子不动,空格移动到另一边】和【棋子...
阅读全文
摘要:luogu 传送门标准的二分答案。 check中,我们用bfs判断以当前的标准是否能拓展出所有的路标。 注:此题是m行n列。#include#include#include#include #include#include#includeusing namespace std;int...
阅读全文

浙公网安备 33010602011771号