随笔分类 -  实用算法——搜索

摘要:又是一道思路清新的小清晰。 观察题目,如果我们确定了平民或者贵族的任意一方,我们便可以贪心的求出另一方,至此20分;我们发现层数十分小,那么我们就也是状压层数,用lca转移,线性dp,至此50分(好像数据很水这么打能A);至今我们没有用到他是一棵完全二叉树,那么我们发现如果进行树dp,也就是说从子节 阅读全文
posted @ 2017-10-01 20:25 TS_Hugh 阅读(338) 评论(0) 推荐(0)
摘要:搜索问题的关键:优秀的搜索策略以及行之有效的减枝 对于这道题我们阶乘搜肯定不行所以我们按位搜,我们对每一位的三个数进行赋值,然后判解。 对于此一类的搜索乘上一个几十的常数来减枝往往要比直接搜要快得多,因为这样的问题他们都会有一个庞大的"之后",而且判断不存在较为容易,以我们多花一些时间进行减枝往往能 阅读全文
posted @ 2017-09-26 17:27 TS_Hugh 阅读(249) 评论(0) 推荐(0)
摘要:对于最优解我们发现所有的最优解都可以是前多少多少个,那么我们就二分这个前多少多少个,然后用dfs去判解,我们发现在dfs的过程中如果不剪枝几乎必T,所以我们就需要一些有效的剪枝 I. 我们在枚举过程中每个数选什么是有前后顺序的,然而对于一些相同的数他们并没有顺序我们可以记录上个数的选择点,如果两数相 阅读全文
posted @ 2017-09-20 12:05 TS_Hugh 阅读(168) 评论(0) 推荐(0)
摘要:这道题明显是异或方程组,然而解不一定唯一他要的是众多解中解为1的数的最小值,这个时候我们就需要dfs了我们dfs的时候就是枚举其有不确定解的数上选0或1从而推知其他解,由于我们dfs的时候先0后1,虽然我们选出的0多最后得到的0不一定多,但至少加上小小的剪枝(例如如果剩下的解全为0也不必已知解多就退 阅读全文
posted @ 2017-09-17 21:40 TS_Hugh 阅读(222) 评论(0) 推荐(0)
摘要:这道题就体现了聪明的搜索策略的重要性,如果我们正着搜,判断效率会明显下滑,所以我们就采用倒着搜索。(其实很玄学.....) 阅读全文
posted @ 2017-09-17 21:32 TS_Hugh 阅读(310) 评论(0) 推荐(0)
摘要:这道题是典型的数搜索,讲究把数一层一层化小,而且还有最重要的大质数剪枝。 阅读全文
posted @ 2017-09-17 21:29 TS_Hugh 阅读(253) 评论(0) 推荐(0)
摘要:这道题,又是一位玄学搜索...... 我是用的蜗牛序搜的(顾名思义,@,这么搜),我正着搜80然后一反转比原来快了几十倍........一下AC....... 我的思路是这样的话我们可以从内到外或者从外到内搜索,这样的话我们就可以在一定程度上运用贪心,因为中间的价值大外面的价值小,我是作为一个从来没 阅读全文
posted @ 2017-08-09 19:45 TS_Hugh 阅读(280) 评论(0) 推荐(0)
摘要:这道题硬是让我用STL水过.......而且题解里说的什么双向宽搜,交替扩展............... 这道题反正,STL用就用吧,但是状态数可以卡到千亿级别,因为这个东西是阶乘扩展的,然后我们发现他的深度会极大地影响状态数,然而如果我们把深度缩小为0.5倍,那么他的状态数也就是百万级别的,所以 阅读全文
posted @ 2017-08-09 19:21 TS_Hugh 阅读(350) 评论(0) 推荐(0)
摘要:搜索的最广泛应用优化——剪枝 这道题的dp和贪心都是无正确性的,所以,搜~~~~~~~ 搜的时候你发现不剪枝极容易被卡掉(然而良心NOIP没有这么做,不剪枝仍然飞快),所以我们需要一些玄学的剪枝最常见的有俩:I.我们一层一层累加被感染人群若当前被感染人群已经大于已知解那么就舍去。 II.之后的每一层 阅读全文
posted @ 2017-08-09 19:11 TS_Hugh 阅读(289) 评论(0) 推荐(0)
摘要:第一步我们发现对于每一个格子,我们只有翻和不翻两种状态,我们发现一旦确定了第一行操作,那么第二行的操作也就随之确定了,因为第一行操作之后我们要想得到答案就得把第一行全部为0,那么第二行的每一个格子的操作都会对应于其上的格子的改变,而且也只有第二行能救他了。因此我们只要知道第一行的操作其他的就全都可以 阅读全文
posted @ 2017-08-05 08:33 TS_Hugh 阅读(227) 评论(0) 推荐(0)
摘要:这个东西考试的时候一眼以为状压就压炸了考试又了一下午.....最后我打出来发现后几个点10min都过不去,我大概算了一下,可能是吧.......最后一脸懵逼的我去怂了正解,我们发现只要确定了顺子就可以贪心了,所谓贪心就是在扔相同数码牌的基础上从四带二(对),四带二,三带二,三带一,开始贪心,我们的二 阅读全文
posted @ 2017-07-30 21:19 TS_Hugh 阅读(330) 评论(0) 推荐(0)
摘要:整个模拟的关键除了打出来就是一个剪枝:对于两个左右相邻的块你不用再走←,因为走→是等效的 阅读全文
posted @ 2017-07-28 06:29 TS_Hugh 阅读(194) 评论(0) 推荐(0)
摘要:根据约数和公式来拆s,最后再把答案乘出来,我们发先这样的话递归层数不会太大每层枚举次数也不会太多,然而我们再来个剪枝就好了 阅读全文
posted @ 2017-07-15 07:37 TS_Hugh 阅读(216) 评论(0) 推荐(0)
摘要:我们先把简单的不能搞死,具题意可证:每个蓄水长的管辖区域一定是连续的。证明:既然我们已经能了那么我们就可以说如果这个区间不是连续的那我们取出这个区间中间阻隔开的那一段,那么对于这一整个区间来说水源不可能来自两边那么一定至少有一条直通蓄水厂的路连其上一点,那么对于连着的那个蓄水厂a,以及我们造成此区间 阅读全文
posted @ 2017-07-13 15:38 TS_Hugh 阅读(200) 评论(0) 推荐(0)