随笔分类 - DP(状压)/hash
摘要:最近几天感冒,挖了很多坑,趁今晚状态还可以,赶紧填一填,重新写了一次代码,思路大同小异,但是就是A了,可能是状态问题,细节没有做好吧。 这道题一开始就是想到hash了,但是错误的想只比较一次,然后果断WA 正确的做法应该是枚举每一个n-1长度的串,然后比较他们之间是否相同,由于题意说明没有相同的串,
阅读全文
摘要:这题一眼看上去像是KMP。。。莫名旁边的zzz说是ACMachine,而且是真的有dalao用这个做。。。 然后呢经过%羊神的题解呢,发现居然是DP+hash字符串比较,但是时间复杂度就很差了(rank倒数第3,还是无法慢过羊神,果然是神一样的男人),不过又学到了有用的东西。 具体hash就是看作一
阅读全文
摘要:我TM的怕不是个傻逼。。check里面比较hash搞成比较c,居然还能过数据,还过了n个对拍。。果然假如考试信样例就有鬼了。 嗯隔壁哈老师告诉我,hash其实不用mod,直接自然溢出就行,get到新姿势。 这道题前两个操作明显可以用伸展树来解决,问题在于比较两个后缀的前缀,那我们的做法就是令伸展树记
阅读全文
摘要:状态压缩的经典题。 按照一般做法,DP一维时间O(n),显然跑不过。考虑到石子较少,实际上有很长一段是一定可以跳到的,设两个石头分别在i点和j点,跳跃的路程为S到T。那么从i点可以跳到i+S到i+T。从j-T到j-S可以跳到J。显然当i和j相隔非常非常远时,从i到i+T中必然可以经过若干次跳跃,然后
阅读全文
摘要:%hz大佬。。这道题的状态压缩简直匪夷所思(其实是我孤陋寡闻,而且我以前的博客竟然写了这题。。水啊) 嗯这题可以发现,我们可以用一个二进制表示一行的状态,1表示选0反之,可以发现行与行之间可选的范围是确定的,比如说:100这样的状态适用于每一行,推广一下:100001是适用于任何两行之间的。所以我们
阅读全文
摘要:表示这个东西背了很多次,但是次次忘,希望这次能够记住吧。 康托展开:问45231是n=5的全排列中第几个排列?ans:= 3*4! + 3*3! + 1*2! + 1*1! + 0*0! =93这时求出的是在45231前面全部的排列,排名还要加1所以对此的做法,就是将阶乘前面的求出来,这个就是在a[
阅读全文

浙公网安备 33010602011771号