摘要:
woc累死了写了两个半小时。。。就是BFS?我太菜了。。。 刚开始以为让人预先跑一遍BFS,然后一会儿取两节加起来就好了,结果发现求出来的最短路(就是这个意思)会因箱子的移动而变化。。。。我死了QWQ 康康书上正解:双重BFS?!!让人推箱子的时候再跑一遍BFS?!!时间不就爆炸了?!!啊n,m只有 阅读全文
摘要:
多测不清空,爆零两行泪。。。。我死了QWQ 每个节点3个状态:横坐标,纵坐标,和方向 说一下方向:0:立着,1:竖着躺着,上半部分在(x,y),2:横着躺着,左半部分在(x,y) 然后就有了常量数组: 第一维是状态中的方向,第二维是要扩展的方向(0,1,2,3) 然后就搜他。。。。记得queue要清 阅读全文
摘要:
双向搜索:把前一半的可行状态搜出来,然后sort+unique,之后搜后一半时,结束时二分一下前一半的答案,拼出一个与W尽量接近的ans来更新 ps:距LYD说前一半取n/2+2时跑的最快。。。不知,,, 2019.04.26 阅读全文
摘要:
不知蓝书的标程在说什么,,,,于是自己想了一下。。。发现自己的代码短的一批。。。 限制搜索深度+枚举时从大往小枚举,以更接近n+bool判重,避免重复搜索 2019.04.26 阅读全文
摘要:
emm。。。挺秀的。。。挺神的? 每行,每列,每宫用一个二进制数表示选或没选的状态,刚开始设没选为1,然后更改状态的时候异或一下就好了; 这样可以通过lowbit取出每一个没有选过的数;(妙啊? 关于剪枝:每次选状态数最小的位置(就是能选择的数少的位置)去向下搜索(需要预处理出每个数代表的状态能选择 阅读全文