10 2019 档案

摘要:做个备忘录把…… 二项式反演: 令$f_i$表示至少选择$i$个,$g_i$表示敲好选择$i$个 $f_i=\sum_{j=0}^i \dbinom{n}{j} g_j$ $g_i=\sum_{j=0}^{i}( 1)^{i j}\dbinom {n}{j}f_j$ 范德蒙德卷积: $\dbinom 阅读全文
posted @ 2019-10-31 23:49 呢没理他 阅读(224) 评论(0) 推荐(0)
摘要:感觉已经几次碰到这种类型的题目了,写篇$Blog$总结一下 题意: 是否存在一条$(s_i, t_i)$的路径,满足先只走编号不超过$L_i$的点,再走编号不超过$R_i$的点 $Solution$: 对于这种限定经过点数的题目,可以比较自然地想到重构树: 由于前后都有限定,我们考虑建两颗重构树 第 阅读全文
posted @ 2019-10-31 23:44 呢没理他 阅读(271) 评论(0) 推荐(2)
摘要:太菜了,不会生成函数,于是用特征方程来写的这道题 首先我们知道,形如$a_n=A a_{n 1}+B a_{n 2}$的特征方程为$x^2=A x+B$ 于是此题的递推式就是:$x^2=233x+666$,即:$x^2 233x 666=0$ 用求根公式解得:$x_1=\dfrac{233+\sqr 阅读全文
posted @ 2019-10-31 23:42 呢没理他 阅读(141) 评论(0) 推荐(0)
摘要:~~我怎么什么都不会啊$QAQ$博弈论怎么和期望一样玄学啊$QAQ$~~ 我们分几种情况讨论: $Case1$:只有一堆且为1,那么后手胜利 $Case2$:每一堆都是1,那么只需要判断奇偶性,奇数则先手败,偶数则后手败 $Case3$:只有一堆不是1,其余堆都是1,那么可以根据就行,先手可以选择是 阅读全文
posted @ 2019-10-31 23:42 呢没理他 阅读(102) 评论(0) 推荐(0)
摘要:题目是要我们求出如下柿子: $$\sum_{i=0}^{n}C_{nk}^{ik+r}$$ 考虑k和r非常小,我们能不能从这里切入呢? 如果你注意到,所有组合数上方的数$\%k==r$,那么是不是可以从$DP$开始呢? 跟据上述性质,我们可以得到暴力$DP$: 考虑组合数的实际意义是在n个数中选出m 阅读全文
posted @ 2019-10-31 23:41 呢没理他 阅读(188) 评论(0) 推荐(0)
摘要:首先我们要注意到一个性质:由于根与右子树的根奇偶性相同,那么根的奇偶性与$N$相同 然后我们发现对于一个完美树,他的左右两个儿子都是完美树 也就是说,一颗完美树是由两棵完美树拼成的 注意到另一个性质:由于权值是一个排列,假设根节点为$x$,那么左子树的范围是$[1, x 1]$,右子树为$[x + 阅读全文
posted @ 2019-10-31 23:39 呢没理他 阅读(240) 评论(0) 推荐(0)
摘要:这么妙的题怎么没人发题解啊 首先这是三维的,~~我们可以对其进行降维打击~~ 先考虑一维怎么做? 我们可以对其该维坐标进行排序,按照顺序输出,可能会多余一个 那拓展到二维呢? 我们可以把它转化成一维,分成很多个一维后执行上述操作,把一维中多的一些点存下来,可以保证这些点的一维值两两不等,于是按照另一 阅读全文
posted @ 2019-10-31 23:38 呢没理他 阅读(199) 评论(0) 推荐(0)
摘要:这题还是比较妙妙~~套路~~的,复杂度为$O(log^2N)$,可以卡掉$\sqrt n$的做法 首先我们可以把原数列分成很多个集合,集合之间肯定是两两独立的,考虑分别计算答案 我们定义$f_i$为集合大小为i出现过多少次(集合大小最多为$logN$级别),$g_i$表示集合大小为i删除完的期望步数 阅读全文
posted @ 2019-10-31 23:36 呢没理他 阅读(178) 评论(0) 推荐(0)
摘要:构造题果然都非常神仙啊 ~~首先翻译有点问题,$L, R$的范围应该为$[1, 10^{200}]$~~ 由于模数a达到了$10^{18}$,所以我们可以发现,当$i using namespace std; long long a, pax = 1e18 + 1; signed main() { 阅读全文
posted @ 2019-10-31 23:35 呢没理他 阅读(189) 评论(0) 推荐(0)
摘要:妙妙题…… ~~看到$MST$,想到$Kruskal$,看到异或,想到$Trie$~~ 首先我们模拟一下$Kruskal$的流程:找到最小边,如果联通就忽略,未联通就加边 我们把所有点权值加入$0 1\ Trie$中,然后画张图,可以发现有$n 1$个点是有两个儿子的,而其他点都是只有$0/1$个儿 阅读全文
posted @ 2019-10-31 23:33 呢没理他 阅读(195) 评论(0) 推荐(0)
摘要:~~果然我还是太$Naive$了~~ 首先有一些点/边其实是没有意义的,如果从1出发不能到该点或者从该点不能到n,这个点就可以不用管了。这个过程可以用正反两边$dfs/bfs$实现 然后删掉那些点之后,新图中如果出现了环,那么显然是无解的 然后现在图就转化成了一张$DAG$ 由于$1 n$的所有路径 阅读全文
posted @ 2019-10-31 23:31 呢没理他 阅读(134) 评论(0) 推荐(0)
摘要:~~颂魔眼中的一眼题我大湖南竟无一人$AC$~~ 首先我们考虑一个性质:我们肯定存在一种最优解,满足从某个点出发,一直往前走,不停下来。 证明:我们假设存在一种最优解,是在$t_i$的时候到达$a$点,那么我肯定会在$t_i x(x≥1)$的时间会到达$a 1$号点 我们假设$x != 1$,即我们 阅读全文
posted @ 2019-10-31 23:30 呢没理他 阅读(148) 评论(0) 推荐(0)
摘要:加强前这道题还是比较友好的 首先我们设$g_x$为x对情侣没有一对坐在一起的数量 然后答案就可以表示成:$C_n^k A_n^k 2^k g_{n k}$ 这里的复杂度是$O(T N)$,貌似不错,所以现在问题变成求$p_x$了 第一篇题解是利用这是一个错牌问题,用递推式解决,复杂度为优秀的$O(N 阅读全文
posted @ 2019-10-31 23:29 呢没理他 阅读(151) 评论(0) 推荐(0)
摘要:~~被某大佬指出这是多项式板子!?~~ 我们假设我们原始数列是$a_i, c_i$, 旋转后的数列是$a_i, b_i$,我们的增加量为x $$\sum_{i = 1}^n(a_i b_i + x)^2$$ 拆开平方得: $$\sum_{i = 1}^na_i^2+b_i^2+x^2+2 x a_i 阅读全文
posted @ 2019-10-31 23:27 呢没理他 阅读(134) 评论(0) 推荐(0)
摘要:~~不知道有没有人跟我一样数据结构学傻了~~ 首先这道题是要求回文串,那么我们可以想到 "manacher算法" 但由于$manacher$不能求出双回文子串,我们要考虑一些性质 首先对于一个回文串,删掉两边的字符它一样是回文串 然后$manacher$求出的$p$数组就是他能拓展的数量,发现对于一 阅读全文
posted @ 2019-10-31 23:26 呢没理他 阅读(179) 评论(0) 推荐(0)
摘要:重拾$manacher$,真切感受到了他的妙处 首先,考虑到回文串分奇数和偶数两种情况,需要分类讨论,所以我们可以考虑在所有字符之间插入一个没有用过的符号' ' 然后边界问题不好处理,所以可以在字符串的开头加上一些奇怪的符号'~' 接下来就是$manacher$的正文部分了 我们定义$p_i$表示以 阅读全文
posted @ 2019-10-31 23:25 呢没理他 阅读(114) 评论(0) 推荐(0)
摘要:太菜了并不是很理解多项式,简单记录一下,缓慢更新吧…… ~~有问题问快速航~~ $FFT$ 首先我们要求的柿子长这样: $$c(k) = \sum_{i+j = k}a(i) b(j)$$ 大概思路:先把两个多项式转成点值$(DFT)$,再把两个多项式的点值乘在一起,把新的点值转成多项式$(IDFT 阅读全文
posted @ 2019-10-09 20:53 呢没理他 阅读(509) 评论(2) 推荐(1)
摘要:妙妙题…… 这道题这要求%2的个数,肯定有什么性质 ~~于是我们想到了用$bitset$来处理~~ 由于三操作有$gcd$,~~于是我们又想到用反演来解决~~ 我们回忆一下反演的柿子 设$f(x)$为x出现了多少次,$F(x)$为x的倍数出现了多少次 $$F(d) = \sum_{d|x}f(x)$ 阅读全文
posted @ 2019-10-09 20:52 呢没理他 阅读(163) 评论(0) 推荐(1)
摘要:我们考虑对于一个$N$,他如果变成了他的约数$x$,那又会变成一个子问题 我们定义$F(n, k)$为n操作k次的期望个数 那么我们有$F(n, k) =\sum_{x|n} F(x, k 1) \frac{1}{d}$(其中d为n的约数个数) 因为$N$的约数个数肯定在$\sqrt N$以内现在我 阅读全文
posted @ 2019-10-03 23:37 呢没理他 阅读(211) 评论(1) 推荐(0)
该文被密码保护。
posted @ 2019-10-03 19:41 呢没理他 阅读(0) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2019-10-02 20:38 呢没理他 阅读(1) 评论(0) 推荐(0)
摘要:定义$sum[x] = \sum_{i = 1}^x a[i]$ 首先不难想到,我们枚举左右端点,然后贪心的减去这一段区间中$sum[x] sum[x d + 1]$的最大值,这样枚举是$O(N^3)$的 然后我们发现,对于一个左端点,我们肯定要尽可能的往后去找右端点,同理,对于一个右端点,我们肯定 阅读全文
posted @ 2019-10-02 20:38 呢没理他 阅读(158) 评论(0) 推荐(0)
摘要:对于这种异或类的题目,我们可以考虑从异或运算性质下手 我们记$sum[i] = \sum_{j = 1} ^ {i}a[j]$ 不难发现,如果我们对每一位分开考虑,若我们在求第x为的答案,记所有区间的连续的和有K个该位为1,那么跟据异或的运算法则,这一位对答案有贡献当且仅当K为奇数,且对答案的贡献为 阅读全文
posted @ 2019-10-02 20:37 呢没理他 阅读(471) 评论(1) 推荐(0)
摘要:"题目地址" ~~看到这题目就不想做了系列,出题人是不是都不知道杜教筛是什么东西啊,他家杜教筛可以预处理优化到~~$O(n^\frac{2}{3})$ ~~先吓唬你一下,我们要求:~~ $$\sum_{i=1}^n\sum_{j=1}^m\sum_{k=1}^p\gcd(i\cdot j,i\cdo 阅读全文
posted @ 2019-10-02 20:37 呢没理他 阅读(292) 评论(0) 推荐(0)
摘要:首先我们要发现一个性质,对于每一棵树,我们换了一个根(把原本根的某个儿子$v_1$记成新的根) 我们记这个树的权值和为sum,每个子树的权值和为$S[i]$,对于每次换根,受影响的$S[i]$只有根本身和$v_1$,并且满足:$S[rt] sum S[v_1]$, $S[v_1] S[rt]$ 于是 阅读全文
posted @ 2019-10-02 20:35 呢没理他 阅读(170) 评论(0) 推荐(0)
摘要:~~这道题细节是真的多~~ 看数据范围,这应该是一道虚树DP,我们先来想一下不用虚树怎么做 我们定义$id[i]$为第i个点应该归哪一个议事处管理,且i到$id[i]$的距离为$dis[i]$ 我们做两遍dfs,首先从下到上,用儿子更新父亲,再从上到下,用父亲更新儿子 更新过程十分简单,就类似于重链 阅读全文
posted @ 2019-10-02 20:35 呢没理他 阅读(197) 评论(0) 推荐(0)
摘要:我们要求的柿子是张这样子的: $$\frac{1}{n (n 1)} \sum_{i = 1}^n\sum_{j = 1}^{n}\phi(a_i a_j) dis(i, j)$$ 其中$a_i$为一个排列,$dis(i, j)$表示在树上的距离 这种题的套路一般是先拆柿子,但是这道题的式子…… 我 阅读全文
posted @ 2019-10-02 20:34 呢没理他 阅读(198) 评论(0) 推荐(0)
摘要:$Orz$ 各位题解大佬,我来膜拜一发 ~~还有单调栈实在没弄懂~~ 法一:线段树+堆 首先,讨论区间的个数的题目,我们可以想到枚举一个端点$r$,找到所有的$l$ 我们不妨设:$ml[i]$为第i种颜色出现的最小位置,$mr[i]$为第i种出现的最大位置 我们想到对于一个右端点,他有那些值是不能选 阅读全文
posted @ 2019-10-02 20:32 呢没理他 阅读(299) 评论(0) 推荐(0)