搜索
litble
Away From OI已久,一天天变菜中,博客平时不咋看,也没能力答疑和改错了,因此不会互动见谅orz
展开
-
常用剪枝小结与小木棍问题
参见poj1011,HDU1455,洛谷1120,codevs3498小木棍题外话作死的木棍…… 写了一下午……我好弱…… 以前在codevs上A了这题,以为做出来了(才怪),后来才发现只有codevs上能A…… 反正这是一道剪枝神题,如果剪错啦,就WA啦。我一开始是因为做了一个神奇的判断:如果在木棍为0的情况下拼不出来,不进行任何新的枚举。后来发现这错的很离谱啊…… 另外,C...原创 2017-05-11 17:06:27 · 1036 阅读 · 0 评论 -
poj3131 立体八数码,双向广搜
神题。题目分析状态巨多无比。 咱们知道应对这种神级题目有两种办法:哈希和双向广搜。那么在这道题的情况下,都要用。 哈希当然是链式哈希了,一开始搞了半天每弄明白,后来参考了一位大大的代码,就两边的广搜写在同一个哈希表里,不过作不同的标记,这样可以让代码变短。 这位大大:http://blog.csdn.net/auto_ac/article/details/8790113 哈希就是用一个七进制原创 2017-05-09 13:00:50 · 816 阅读 · 0 评论 -
IDA*学习笔记(uva10384和codevs2495)
迭代加深和A*都是常用的搜索方法,当它们融汇贯通的时候,会发生很奇妙的事情……题意有些格子上有墙,可以推墙到相邻格子上(前提是相邻格子的位置上没有墙),求走出迷宫的一条可行道路。分析由于要不断地推墙,所以可以走重复格子,这样就会无休止地走下去,所以我们只能用迭代加深,限定每次深搜走几步了。 然后是寻路的话自然可以用A*搞一搞,每次判断当前格子到最近出口的直线距离,如果当前步数+预计最短距离>限定步原创 2017-05-09 19:20:49 · 414 阅读 · 0 评论 -
bzoj3562 瞎搞+并查集+dfs
题目分析听说的做法是这样的: 1.离线处理询问,那么有些边就是始终没有被处理的,只看这些边,并查集缩点。 2.加上有被处理的边。 3.离线处理询问,dfs暴力搞答案。 嗯嗯,是比直接暴力时间复杂度不知道低到哪里去了,可是—— 极限数据还是过不了啊!!!! 还有那个“SHTSC 在变化过程中始终保持着一种特殊的性质:即不存在这样的原子序列 a1,a2,…,an(n>3)满足 a1 与 a2原创 2017-08-22 12:41:48 · 288 阅读 · 0 评论 -
洛谷1979/codevs3290 华容道,74行就写完了?
题目分析首先我们要明确,直接瞎广搜可以拿80分,所以怎么取舍是不是很明了? 如果你还是有一颗打正解的心… 好吧,祝你好运。 分析开始—— 此题核心:状态为点,建图,进行最短路状态为点什么状态比较重要?目标棋子的位置,这是肯定的。再者是空格的位置。 不过事实上,重要的状态是空格和目标棋子相邻(第二步会说),也就是一个状态(x,y,tmp)是一个点,表示目标棋子在(x,y)位置,tmp代表空格原创 2017-10-11 16:05:21 · 1893 阅读 · 0 评论 -
bzoj1655/洛谷1772/codevs1655 物流运输 某dfs+状压dp做法
题外话在终于卡过这道题后,很开心地看了看题解,发现…… 大家都是用最短路+dp做的? 然后再一看我的菜鸡做法…… 我……题目分析首先我发现m的范围是很小的,这是一个状压的征兆.然后我发现每一种航线都可以用这条航线上经过的点集表示,因为某一天该航线是否可以走也仅和这条航线上的点能否走有关. 所以我可以用dfs处理航线经过某一点集的最短路. 然后开始dp,那么用f(i,zt)表示第i天使用zt原创 2017-11-02 17:10:44 · 508 阅读 · 0 评论 -
bzoj1559/洛谷P4045 [JSOI2009]密码 AC自动机+状压DP+搜索
我差点没死在这道题上…首先建出AC自动机,然后在每一个字符串的末尾节点用二进制状态记录该字符串已经完整地出现过了,然后设f(i,x,zt)f(i,x,zt)f(i,x,zt)表示长度为iii的密码,对应AC自动机上的xxx节点,当前每个串有没有出现的状态为ztztzt的方案数即可DP。由于最终结果小于2632^{63}263,所以我们可以DP的过程中对2642^{64}264取模也就是用uns...原创 2018-10-25 16:00:32 · 231 阅读 · 0 评论