摘要: 题目描述 题解: 岛屿之间的边砍/不砍情况有$2^n$种, 但是需要剪掉所有的岛上都首尾相连的情况。 $dp$一下对于完全图没有限制($f$)/有限制($g$)的情况数。 方程:$$f[i]=\sum(C(i-1,j-1)*j^{(j-2)}*f[i-j])$$ $$g[i]=\sum(C(i-2, 阅读全文
posted @ 2019-01-17 20:49 LiGuanlin 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 放完前$i-1$个数之后,$i$会让前面的数变成一个整体,而且与后面没有影响。 就有了$dp$方程:$$dp[i]=\sum(k^2*dp[i-k]*(k-1)!*C(i-1,k-1))$$ 拆开组合数之后有这个东西:$$\frac{dp[i]}{(i-1)!}=\sum(\fra 阅读全文
posted @ 2019-01-17 20:40 LiGuanlin 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 众所周知$FFT$是一个功能多但是不开$O2$常数吓人的算法。 这里介绍一下$FFT$如何搞字符串匹配。 其实我第一次是字符暴力匹配$52$次,结果$T$了一下午。 后来上网找发现有个更好的算法。 如果有两个数判相等,我们可以相减,判断是否为$0$; 但是字符串匹配相当于多对数判相等,相减加和肯定不 阅读全文
posted @ 2019-01-17 20:16 LiGuanlin 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 给一个文本串和一个模式串,模式串中有通配符$'?'$, 问匹配多少次,哪里可以匹配。 题解: 极为暴力,$FFT$单字符匹配$26$次,总计$26*3=78$次$FFT$。 其实有更好的方法我放在下一篇博客里 代码: 阅读全文
posted @ 2019-01-17 19:57 LiGuanlin 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: $FFT$字符串匹配。 但是容错常数怎么处理? 其实很简单,比如说我们正在匹配$'A'$,原式是$$AGCTATCGACA$$容错常数$k=1$, 在我们眼中$'A'$可以这样匹配:$$AA-AAA-AAAA$$ 因为$'A'$在这些地方都是合法的。 字符集为$4$就做$4$遍。 阅读全文
posted @ 2019-01-17 19:42 LiGuanlin 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 能看出来的是,每一组数只能改最后一位,所以前$7$位动不了。 所以$KMP$跑一跑。 重点在于最后一位怎么搞。 如果$KMP$跑完了还没找到合适的位置,直接$puts("No")$就好了。 剩下个匹配问题。 (要不是数据范围拦着我我都想建图跑费用流了) 这个匹配可以用$FFT$求。 阅读全文
posted @ 2019-01-17 19:35 LiGuanlin 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 首先一看区间和就知道是预处理前缀和。 区间$[l,r]$求和是$s[r]-s[l-1]$。(废话) 然后感觉这道题好毒瘤啊。。。 好像是构造。 后来才知道官方题解真的给了个多项式。 具体实现就是,有两个多项式$A,B$, 第一次,对于这个前缀和$s$,我们让$A[s]+=s_{le 阅读全文
posted @ 2019-01-17 19:23 LiGuanlin 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 第一眼满眼骚操作,然后全部否掉。 然后屈服于题解,才发现这题这么执掌。 首先,如果这个东西是普通的车,那我们可以记录一下$x,y$的覆盖情况,然后减一下; 但是这个可以斜着走。 所以我们可以转一下$x/y$,记录哪一行哪一列没有被覆盖,然后求一下卷积。 得到的是每一条对角线上没有被 阅读全文
posted @ 2019-01-17 18:55 LiGuanlin 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 很吊的容斥+$FFT$,但是并不难。 首先,由于有重复,我们要容斥。 怎么办? 记录三个多项式, 只取一个:$w1$; 相同物体拿两个:$w2$; 相同物体拿三个:$w3$; 然后答案能推出来是$(w1*w1*w1-3*w1*w2+2*w3)/6$; 然后$FFT$瞎搞就行了。 注 阅读全文
posted @ 2019-01-17 18:45 LiGuanlin 阅读(140) 评论(0) 推荐(0) 编辑