摘要: "题目链接" 问题分析 首先一个显然的做法就是建出AC自动机,然后高斯消元。但是这样的复杂度是$O(n^3m^3)$的。 我们发现其实只需要求AC自动机上$n$个状态的概率,而其余的概率是没有用的。我们不妨设$i$赢的概率是$P_i$。同时,我们令$P_0$为没有任何一个人赢的概率。 然后我们考虑从阅读全文
posted @ 2019-03-23 13:41 chy_2003 阅读(7) 评论(0) 编辑
摘要: [TOC] 前置知识 请先对树链剖分和Splay有所了解。LCT基于树链剖分,而本文的数据结构采用Splay。 Splay "戳这里" ,树链剖分 "戳这里" 介绍 注意: 请务必分清原树和我们操作的树。 以下图片参考 "Yang Zhe的论文" 假设原来有这么一棵树: 我们把它剖分成这样子: 红色阅读全文
posted @ 2019-03-21 11:06 chy_2003 阅读(16) 评论(0) 编辑
摘要: "题目链接" 问题分析 $$ \begin{aligned} Ans&=\prod_{i=1}^n\prod_{j=1}^mf[\gcd(i,j)]\\ &=\prod_{t=1}^nf(t)^{\sum\limits_{i=1}^n\sum\limits_{j=1}^m[\gcd(i,j)=t]}阅读全文
posted @ 2019-03-19 16:11 chy_2003 阅读(13) 评论(0) 编辑
摘要: [TOC] 前言 听说FFT是个很有用的东西,于是本菜鸡就~~去背了模板~~尝试着看了一下。这里写下菜鸡版教程。 卷积 FFT主要用于求卷积。然而卷积是什么? 如果$f$是一个$n$次多项式,$g$是$m$次多项式,那么它们的卷积 $$ h(x)=f(x)g(x)=\sum_{i=0}^n\sum_阅读全文
posted @ 2019-03-11 19:54 chy_2003 阅读(23) 评论(0) 编辑
摘要: "题目链接" 问题分析 看见字符串,还涉及到子串和前缀的,当然就想到了SAM(~~其实我不会SA~~)。 首先我们把串反一下,就变成了求S[a..b]的所有子串与S[c..d]的最长后缀的长度。 我们把问题说成这样:求是S[a..b]子串的S[c..d]的最长后缀长度。于是我们就可以二分答案,然后判阅读全文
posted @ 2019-03-11 19:31 chy_2003 阅读(10) 评论(0) 编辑
摘要: [TOC] 前言 Splay是名副其实的区间小能手。它会经常出现在一些有关区间的题上。而本蒟蒻只会Treap,感到分外难受,于是就有了这个教程。 引入 Splay首先是一颗二叉查找树。也就是说,对于任何一颗子树,左子树内所有的值均小于根,右子树内所有的值均大于根。也就是下图这样,数字代表值。 这样的阅读全文
posted @ 2019-03-02 21:43 chy_2003 阅读(13) 评论(0) 编辑
摘要: "题目链接" 问题分析 首先有个很厉害的结论: $$ d(ij)=\sigma_0(ij)=\sum_{x|i}\sum_{y|j}[\gcd(x,y)=1] $$ Prove: $$ \sigma_0(ij)=\sum\limits_{d|ij}1=\sum\limits_{d_1\mid i,d阅读全文
posted @ 2019-02-28 21:14 chy_2003 阅读(6) 评论(0) 编辑
摘要: "题目链接" 问题分析 题意还是很好理解的,就是求 $$ Ans=f(k)=\sum_{a_1=L}^H\sum_{a_2=L}^H\cdots\sum_{a_N=L}^H[\gcd(a_1,a_2,\cdots,a_N)=K] $$ 我们令 $$ F(k)=\sum_{a_1=L}^H\sum_{阅读全文
posted @ 2019-02-28 10:23 chy_2003 阅读(6) 评论(0) 编辑
摘要: "题目链接" 问题分析 题目就是要求 $$ Ans=\sum_{i=1}^n\sum_{j=1}^nij\gcd(i,j) $$ 首先乱搞一波: $$ \begin{aligned} Ans&=\sum_{t=1}^n\sum_{i=1}^n\sum_{j=1}^nijt[\gcd(i,j)==t]阅读全文
posted @ 2019-02-27 13:19 chy_2003 阅读(12) 评论(0) 编辑
摘要: "题目链接" 本文计算部分有参考于https://www.cnblogs.com/Parry PY/p/7731858.html 需要指出的是,https://www.cnblogs.com/Parry PY/p/7731858.html 之中,圈4[n 2]阶行列式的最后一个元素应该是$ 1$而不阅读全文
posted @ 2019-02-18 23:00 chy_2003 阅读(7) 评论(0) 编辑
摘要: 例题: "luoguP4735" 可持久化$Trie$嘛,就和可持久化线段树差不多。这篇文章只是借例题讲一讲如何截取一段时间的信息。 直接讲题大家就可理解。 题目大意 有两种操作,第一种在数组末尾加上一个数,第二种在$l\leqslant p\leqslant r$中求最大的$ a[p] \bigo阅读全文
posted @ 2018-12-30 10:53 chy_2003 阅读(32) 评论(0) 编辑
摘要: 问题描述 这题的题面真的妙……望大家结合样例正确理解题意…… 首先来个样例解释: 解题思路 我们发现,问题实际上是求一系列的$\sum_{i=a}^bi^k$。那么问题可以转换为求$\sum_{i=1}^ni^k$。 我们不妨记$\sum_{i= 1}^ni^k$为$S_{n,k}$。现在考虑如何求阅读全文
posted @ 2018-12-29 22:24 chy_2003 阅读(82) 评论(0) 编辑
摘要: [TOC] 前言 树状数组由于其优越的常数,优越的代码量,更小的空间占用,所以常被使用。(实际上$ZKW$线段树常数也小,码量也小,功能更强大,但是较难理解~~所以哪位大佬教我一下~~)下面就较为详细地介绍树状数组。 然而本博客可能写得较难理解…… 树状数组原理 如果我们令一个数组$A[1]=a[1阅读全文
posted @ 2018-12-20 22:00 chy_2003 阅读(16) 评论(0) 编辑
摘要: 题目大意 有不超过$50000$个询问,每次询问有多少正整数对$x$,$y$,满足$x\leqslant a$,$y \leqslant b$,并且$gcd(x,y)=c$。其中$a,b,c\leqslant 50000$ 解题思路 我们发现 $$ Ans=f(n)=\sum_{x=1}^{a}\s阅读全文
posted @ 2018-12-18 19:51 chy_2003 阅读(10) 评论(0) 编辑
摘要: 题目大意 有至多$10000$组询问,问$1 using namespace std; const int MaxN = 10000010; int Mu[ MaxN ], Vis[ MaxN ]; long long Sum[ MaxN ]; int Num, Prime[ 1000010 ]; 阅读全文
posted @ 2018-12-18 16:27 chy_2003 阅读(17) 评论(0) 编辑
摘要: 当某天,本蒟蒻沉迷于卡常的时候: 我…… 突然,YYKdalao说:用文操快读啊! 然后 喔~目瞪口呆 不多说,上源码: 本来用的读入方式: c++ inline void Read( int &x ) { x = 0; char ch = getchar(); for( ; ch '9'; ch 阅读全文
posted @ 2018-11-06 18:01 chy_2003 阅读(229) 评论(0) 编辑
该文被密码保护。
posted @ 2018-10-27 14:56 chy_2003 阅读(14) 评论(0) 编辑
摘要: 解题思路 首先考虑最暴力的做法。对于每一步,我们都可以枚举每一条边,然后更新每两点之间经过$k$条边的最短路径。但是这样复杂度无法接受,我们考虑优化。 由于点数较少(其实最多只有$200$个点),$N$较大,考虑优化$N$。我们发现,其实可以直接从经过$i$条边的最短路和经过$j$条边的最短路推出经阅读全文
posted @ 2018-10-12 14:15 chy_2003 阅读(15) 评论(0) 编辑
摘要: 解题思路 我们很愉快地发现了这题可以离线。然后我们就尝试预处理所有时间所有点对间的方案数。我们将其维护在$F$里。$F[i][j][k]$表示从$i$到$j$,经过$k$个点的方案数。 当我们从$k$向$k+1$转移的时候,我们枚举点$u$、$v$,如果$u$到$v$有一条边,那么我们将$F[i][阅读全文
posted @ 2018-10-11 18:24 chy_2003 阅读(17) 评论(0) 编辑
摘要: 解题思路 题目里要求$\sum_{i=1}^kA^i$,我们不妨再加上一个单位矩阵,求$\sum_{i=0}^kA^i$。然后我们发现这个式子可以写成这样的形式:$A(A(A...)+E)+E)+E$于是,我们可以将$ A+E$看做一次变换,然后尝试构造一个矩阵。我们发现: $$ (\left[ \阅读全文
posted @ 2018-10-11 16:48 chy_2003 阅读(18) 评论(0) 编辑