上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 15 下一页
摘要: 题目描述 题解: 将所有骑士放在$ci$上,然后树上$dfs$。 每个节点维护一个小根堆,一直$pop$直到$top>=hi$。 然后放加法、乘法标记,将剩下的骑士回溯带回父节点。 代码: 阅读全文
posted @ 2019-01-20 14:54 LiGuanlin 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 左偏树,一棵向左倾斜的二叉树。 板子: $upd:$ 之前版本被$luogu$数据卡掉了,$get_top$操作是$O(n)$的。(0_0) 更新路径压缩的做法。 首先合并两棵树就并一下,删除操作要求删除堆顶元素。 肯定是不能直接删的。 怎么做呢,合并儿子后将自己的指针指向新的堆顶 阅读全文
posted @ 2019-01-20 14:48 LiGuanlin 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 博主对于数学公式的一些小小的总结…… 阅读全文
posted @ 2019-01-18 16:38 LiGuanlin 阅读(1776) 评论(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 阅读(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 阅读(250) 评论(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 阅读(156) 评论(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) 编辑
摘要: 题目描述 题解: 认为大爷讲的最好。 代码: 阅读全文
posted @ 2019-01-12 09:46 LiGuanlin 阅读(158) 评论(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 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 丑板子。 阅读全文
posted @ 2019-01-12 09:35 LiGuanlin 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 由于干每棵植物之前需要先干掉它右面的植物和保护他的植物, 我们可以发现这是最大权闭合子图问题。 简单提一下。 闭合子图,指这个子图中所有的点只会指向子图中的点。 最大权,指这些点有点权,要求得到的闭合子图点权之和最大。 解决办法是,$S$向正点权的点连容量为点权的边,负点权的点向$ 阅读全文
posted @ 2019-01-11 19:02 LiGuanlin 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 由于线段可以出现平行于$y$轴的情况, 我们要拆点。 然后分情况讨论。 具体方法不赘述。 代码: 阅读全文
posted @ 2019-01-11 18:48 LiGuanlin 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 当然上来就离散咯。 先建一条数轴,每个点向后一个点建容量为$k$的边; 然后对于每一个区间,左端点向右端点建容量为$1$的边,费用为离散之前的$l-r$。代表可以跳过这段区间。 代码: 阅读全文
posted @ 2019-01-11 18:43 LiGuanlin 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 最大费用流。 每个点向后面不小于它的点建一条容量为$1$,费用$-1$的边。 $S$向所有点建容量为$1$的入边(费用为$-1$),所有点向$T$建容量为$1$的出边(费用为$0$)。 然后最大费用流。 由于第一次得到的通路是费用最小的,这个费用的相反数就是问题一的答案。 然后继续 阅读全文
posted @ 2019-01-11 18:31 LiGuanlin 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 其实这道题才是最裸的因为它把建图都交代了 相当于每个点出边唯一,入边唯一。 然后发现这是二分图匹配。 代码: 阅读全文
posted @ 2019-01-11 18:23 LiGuanlin 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 分操作讨论一下。 操作$1$: 两条路径走到同一个点原地爆炸。 由于要求点只能取一次,我们可以将点拆为入点和出点。 1.入点->出点,容量为$1$,费用为点权相反数; 2.上面的出点->下面的入点,容量为$1$,费用为0; 3.$S$->最上面一排入点,最下面一排出点->$T$,处 阅读全文
posted @ 2019-01-11 18:19 LiGuanlin 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 网络流二十三题中比较有意思的一道题。 正常能想到的建图方法是: 1.拆点,将每一天拆成早上和晚上; 2.早上向晚上连边,容量为当天所需餐巾数; 3.今天晚上向明天晚上连边,容量为正无穷; 4.$S$向早上连边,容量正无穷,费用为买餐巾费用; 5.每天晚上向慢洗后的那一天早上连边,容 阅读全文
posted @ 2019-01-11 18:07 LiGuanlin 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 将所有点拆开。 $0$点的拆点之间费用为$0$; $2$点的拆点之间费用为$-1$。 所有点不能到$1$上。 然后最大费用流。 代码: 阅读全文
posted @ 2019-01-11 17:53 LiGuanlin 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 图就是题解。 黄色格子只能跳到红色格子上。 于是就和方格取数问题一样了。 代码: 阅读全文
posted @ 2019-01-11 17:50 LiGuanlin 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 题目描述 题解: 裸的最小割。 相邻的块不能被同时选中,所以需要将棋盘分成两类。 一类是$x+y$为奇,一类是$x+y$为偶。 然后一类与$S$建边,一类与$T$建边。 最后最大流。用总和减去最大流(即最小割)即为答案。 代码: 阅读全文
posted @ 2019-01-11 17:48 LiGuanlin 阅读(419) 评论(0) 推荐(1) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 15 下一页