摘要: 做题记录,随时更新 阅读全文
posted @ 2020-01-11 21:38 lnzwz 阅读(509) 评论(0) 推荐(0) 编辑
摘要: KMP int KMP(char S[200010],char T[200010],int wz[200010],int n,int m) { ne[0]=-1; for(int i=1;i<=m;i++) { int t=ne[i-1]; while(t!=-1&&T[i-1]!=T[t]) t= 阅读全文
posted @ 2019-12-20 21:23 lnzwz 阅读(486) 评论(0) 推荐(0) 编辑
摘要: 最近的技巧总结,随时更新。 阅读全文
posted @ 2019-11-10 13:51 lnzwz 阅读(852) 评论(0) 推荐(4) 编辑
摘要: T1:若$x$存在一个约数$y$满足$y$的十进制表示有$7$,那么$x$就是不好的,$T$次询问给出$n$,询问大于$n$的最小的好数。\(n<=10^5,T<=10^7\)。 解法:类似筛法的思路。先预处理$b7(x)=b7(x/10)||(x\mod10==7)$,表示$x$的十进制中有无$7 阅读全文
posted @ 2021-11-22 13:57 lnzwz 阅读(638) 评论(0) 推荐(1) 编辑
摘要: 循环串,常常和$border$有关。 一个字符串的$border$可以拆分为$O(logn)$个等差数列,这个性质常常用于$DP$优化。 例题1:回文拆分 CF906E Reverses CF932G Palindrome Partition 这两道题,都可以通过一些转化变为回文区间划分。 首先,建 阅读全文
posted @ 2021-04-06 22:01 lnzwz 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 题意: 对于一个$B$进制数$x$定义它的数根为把所有位上的数加在一起的结果。 给出一个长度为$n$的$B$进制串$s$,$m$次询问每次给定一个集合$A$和一个数$x$,计算有多少个$s[l ... r]$可以通过将至多一个字符更改为$A$中的元素使得数根为$x$。 \(n,m\leq 2^{20 阅读全文
posted @ 2021-04-06 19:54 lnzwz 阅读(69) 评论(0) 推荐(0) 编辑
摘要: // Game.cpp: implementation of the CGame class. // ////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include 阅读全文
posted @ 2021-03-07 15:49 lnzwz 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 线性基,是可以删除的。 维护哪些数在线性基中,以及维护的每个线性基如何用它们表示,还有不在线性基中的数如何表示。 删除一个数$x$时,分类讨论。 若这个数不在线性基中,直接删除即可。 否则,就要消除它的影响。 找到一个不在线性基中,且需要$x$来表示的数$y$。 如果找到了,那么把$y$加入线性基中 阅读全文
posted @ 2021-02-24 20:48 lnzwz 阅读(400) 评论(0) 推荐(1) 编辑
摘要: 注:本文仅代表个人观点 谈恋爱无论是对whk,还是OI,都有着极大的促进作用。 谈恋爱的OIer,大多数都能取得较好的成绩,反之亦然。 通过分析,我认为原因主要有以下几点: 学OI需要承受一定的压力,谈恋爱可以缓解这种压力,减少抑郁的发生。 谈恋爱可以让OIer提高对生活的兴趣,增加学OI的动力,这 阅读全文
posted @ 2021-02-06 18:01 lnzwz 阅读(3381) 评论(18) 推荐(34) 编辑
摘要: 题意:有一个点数$2n$的二分图。左面第$i$个点与右面前$A_i$个点有连边,保证$A_i$不下降。 对于每个$k$,求匹配数目为$k$的方案数。 由于$A_i$不下降,因此问题等价于选一个长度为$k$的子序列,权值为$A_-i$的乘积。 使用dp:设 阅读全文
posted @ 2021-01-31 22:20 lnzwz 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 通常,线段树是一个log的。 但是,有的用于解决特殊问题的线段树,是两个log的。 这个额外的log有两种情况: 第一种就是添加的标记比较特殊,使得pushdown时可能递归。 通过诡异证明,使得均摊复杂度为$O(nlog^2n)$。 第二种就是pushup时,需要递归到其中一个子树,这样每次pus 阅读全文
posted @ 2021-01-24 22:00 lnzwz 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 题意:有一些点,距离不超过$d$的连边。求最大团。 题解: 首先,最大团是NPC的。 求最大团,可以把边取反,变为最大独立集。 如果这个图是二分图,那我们就可以做了。 这个图是二分图,说明可以把能选择点分为两部分,每部分的最远点对距离都不超过$d$。 考虑缩小可行集合使其满足二分图性质。 枚举答案的 阅读全文
posted @ 2021-01-20 22:13 lnzwz 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 背包问题是一大类问题。 我们不妨设有$n$个物品,背包容量为$m$,每个物品大小为$c$,个数为$d$,价值为$w$。 大写字母表示求和。 01背包,完全背包,分组背包:直接dp即可。时间复杂度$O(nm)$。 多重背包:单调队列优化或二进制拆分。$O(nm)$或$O(nmlogd)$。枚举余数进行 阅读全文
posted @ 2021-01-11 21:58 lnzwz 阅读(103) 评论(0) 推荐(0) 编辑