随笔分类 -  数学

摘要:题目描述: 有n个房间,每个房间有若干把钥匙能够打开特定房间的门。 你会做这么件事情: 最初你在房间1。 每当你到达一个房间,你可以选择该房间的一把钥匙,前往该钥匙对应的房间,并将该钥匙丢到垃圾桶中。 你希望:最终回到房间1,且垃圾桶中有所有的钥匙。 求方案数。两组方案不同,当且仅当使用钥匙的顺序不 阅读全文
posted @ 2019-02-16 09:22 LiGuanlin 阅读(160) 评论(0) 推荐(0)
摘要:题目描述 题解: 显然凸多面体投下来一定是个凸多边形。 对于$30$分,直接投到$x-y$平面上即可。 对于$100$分,考虑搞出平面的一般式方程$ax+by+cz+d=0$。 给出平面上三个点$A,B,C$,那么求$(B-A)$^$(C-A)$,得到向量$(a,b,c)$, 然后随便带一个点把$d 阅读全文
posted @ 2019-02-16 09:10 LiGuanlin 阅读(209) 评论(0) 推荐(0)
摘要:题目描述 题解: 容斥(?)+$dp$。 定义状态$dp[i][j]$表示前$i$层,其中第$i$层用了$j$种颜色。 这个时候我们发现还缺一个系数,就是用$i$种颜色涂$j$个格子的方案数(颜色无顺序要求)。 定义这个东西叫$f[i][j]$。 然后有:$$dp[i][j]=f[l[i]][j]* 阅读全文
posted @ 2019-02-08 19:39 LiGuanlin 阅读(149) 评论(0) 推荐(0)
摘要:题目描述 题解: 多项式$O(nlogn)$全家桶里面比较简单比较基础的一个。 考虑到已知$F(x)$我们要求$G(x)$满足$F(x)*G(x)=1(mod x^k)$, 首先,当$k==1$时,求一下$F(0)$逆元即可。 然后看看$mod x^k$能不能从$mod x^{k/2}$搞出来。 假 阅读全文
posted @ 2019-02-04 13:43 LiGuanlin 阅读(166) 评论(0) 推荐(0)
摘要:题目描述 题解: 数据范围这么大当然先打表了。 然后发现$P-position$分布极为稀疏。 不妨设$x<y$,则$P-position$为:$(0,0)$,$(1,2)$,$(3,5)$,$(4,7)$…… 有两个规律: 1.所有正整数出现且仅出现一次。 2.第$k$个点的$y-x=k$。 所以 阅读全文
posted @ 2019-01-22 22:26 LiGuanlin 阅读(134) 评论(0) 推荐(0)
摘要:2019年1月20日20:44:08 我在给威佐夫博弈打表的时候,无意中发现了一个数列。 它的前$100$位是:$$12122121221221212212122122121221221212212122122121221212212212122122121221212212212122122121 阅读全文
posted @ 2019-01-20 21:00 LiGuanlin 阅读(165) 评论(0) 推荐(0)
摘要:博主对于数学公式的一些小小的总结…… 阅读全文
posted @ 2019-01-18 16:38 LiGuanlin 阅读(1851) 评论(5) 推荐(1)
摘要:题目描述 题解: 岛屿之间的边砍/不砍情况有$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 阅读(327) 评论(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 阅读(200) 评论(0) 推荐(0)
摘要:题目描述 题解: 显然一个整体一定是连续的一段数。 所以我们预处理长度为$len$的一组数的组成方案数就好了。 于是$dp$。 $dp[0]=0$,$dp[i]=i!-\sum(k!*dp[i-k])$ $i!$,这$i$个数瞎放。 $k!*dp[i-k]$,第$i$个数放到倒数第$k+1$位上,此 阅读全文
posted @ 2019-01-17 20:32 LiGuanlin 阅读(140) 评论(0) 推荐(0)
摘要:众所周知$FFT$是一个功能多但是不开$O2$常数吓人的算法。 这里介绍一下$FFT$如何搞字符串匹配。 其实我第一次是字符暴力匹配$52$次,结果$T$了一下午。 后来上网找发现有个更好的算法。 如果有两个数判相等,我们可以相减,判断是否为$0$; 但是字符串匹配相当于多对数判相等,相减加和肯定不 阅读全文
posted @ 2019-01-17 20:16 LiGuanlin 阅读(267) 评论(0) 推荐(0)
摘要:题目描述: 给一个文本串和一个模式串,模式串中有通配符$'?'$, 问匹配多少次,哪里可以匹配。 题解: 极为暴力,$FFT$单字符匹配$26$次,总计$26*3=78$次$FFT$。 其实有更好的方法我放在下一篇博客里 代码: 阅读全文
posted @ 2019-01-17 19:57 LiGuanlin 阅读(119) 评论(0) 推荐(0)
摘要:题目描述 题解: $FFT$字符串匹配。 但是容错常数怎么处理? 其实很简单,比如说我们正在匹配$'A'$,原式是$$AGCTATCGACA$$容错常数$k=1$, 在我们眼中$'A'$可以这样匹配:$$AA-AAA-AAAA$$ 因为$'A'$在这些地方都是合法的。 字符集为$4$就做$4$遍。 阅读全文
posted @ 2019-01-17 19:42 LiGuanlin 阅读(149) 评论(0) 推荐(0)
摘要:题目描述 题解: 能看出来的是,每一组数只能改最后一位,所以前$7$位动不了。 所以$KMP$跑一跑。 重点在于最后一位怎么搞。 如果$KMP$跑完了还没找到合适的位置,直接$puts("No")$就好了。 剩下个匹配问题。 (要不是数据范围拦着我我都想建图跑费用流了) 这个匹配可以用$FFT$求。 阅读全文
posted @ 2019-01-17 19:35 LiGuanlin 阅读(176) 评论(0) 推荐(0)
摘要:题目描述 题解: 首先一看区间和就知道是预处理前缀和。 区间$[l,r]$求和是$s[r]-s[l-1]$。(废话) 然后感觉这道题好毒瘤啊。。。 好像是构造。 后来才知道官方题解真的给了个多项式。 具体实现就是,有两个多项式$A,B$, 第一次,对于这个前缀和$s$,我们让$A[s]+=s_{le 阅读全文
posted @ 2019-01-17 19:23 LiGuanlin 阅读(150) 评论(0) 推荐(0)
摘要:题目描述 题解: 第一眼满眼骚操作,然后全部否掉。 然后屈服于题解,才发现这题这么执掌。 首先,如果这个东西是普通的车,那我们可以记录一下$x,y$的覆盖情况,然后减一下; 但是这个可以斜着走。 所以我们可以转一下$x/y$,记录哪一行哪一列没有被覆盖,然后求一下卷积。 得到的是每一条对角线上没有被 阅读全文
posted @ 2019-01-17 18:55 LiGuanlin 阅读(163) 评论(0) 推荐(0)
摘要:题目描述 题解: 很吊的容斥+$FFT$,但是并不难。 首先,由于有重复,我们要容斥。 怎么办? 记录三个多项式, 只取一个:$w1$; 相同物体拿两个:$w2$; 相同物体拿三个:$w3$; 然后答案能推出来是$(w1*w1*w1-3*w1*w2+2*w3)/6$; 然后$FFT$瞎搞就行了。 注 阅读全文
posted @ 2019-01-17 18:45 LiGuanlin 阅读(148) 评论(0) 推荐(0)
摘要:题目描述 题解: 裸的令人发指的$FFT$。 建立数轴,每出现一个长度就在当前长度位置上$+1$。 自乘卷积,得到的是两根长度之和为$i$的对数$*2$。 然后两边之和小于第三边,直接扫一边。 用排列数随便算一下总方案数。 代码: 阅读全文
posted @ 2019-01-17 18:32 LiGuanlin 阅读(59) 评论(0) 推荐(0)
摘要:题目描述 题解: 认为大爷讲的最好。 代码: 阅读全文
posted @ 2019-01-12 09:46 LiGuanlin 阅读(168) 评论(0) 推荐(0)
摘要:题目描述: 请计算$C[k]=\sum(a[i]*b[i-k])$ 其中 k < = i < n ,并且有 n < = 10 ^ 5。 a,b中的元素均为小于等于100的非负整数。 题解: 由于卷积的式子是:$$C[k]=\sum(a[i]*b[k-i])$$ 其中满足的性质是后面$i+(k-i)= 阅读全文
posted @ 2019-01-12 09:42 LiGuanlin 阅读(165) 评论(0) 推荐(0)