随笔分类 - 题解
摘要:CosmicBlocks - TopCoder- 12034 (网络流) 注意题目定义的同构是存在不同的颜色覆盖关系,而不是存在不同的排列顺序 所以先枚举每一层放了那些颜色,再枚举那些颜色之间有覆盖 每一层的颜色划分数很少,最多可能同时存在的覆盖关系是$9$种,枚举复杂度最多是$29$,然后可以$2
阅读全文
摘要:「SDOI2017」树点涂色(LCT+线段树) 可以发现更新操作就是$\text\(的\)\text$操作,这个操作复杂度是$O(n\log n)$的 因此,考虑对于每次的$\text$操作,维护每个点到根的路径上不同的权值个数 每次$\text$操作只设计到合并两个链/断开一条链两种操作,可以通过
阅读全文
摘要:HDU-5608(杜教筛) 题意:\(G(n)=n^2−3n+2=\sum_{d|n}F(d)\),求$\sum_1^nF(i)$ 反演得到:\(F(n)=\sum_{d|n}\mu(d)G(\frac{n}{d})\) 则$\sum_1^nF(i)=\sum_i\sum_{d|i}\mu(d)G(
阅读全文
摘要:HDU-5869 Different GCD Subarray Query(树状数组) 先不考虑查询的区间$[L,R]$ 首先我们枚举一个$\gcd$区间的$l$,考虑不同的$\gcd(l..r)\(实际上只有\)\log n$个,因为每次改变,$\gcd$的值至少减少一倍 维护一个倍增数组,可以$
阅读全文
摘要:「ZJOI2019」开关 神题 前言 设$\text_{\oplus}(F(x))=F'(x)$ 关于$\text_{\oplus}$的展开式子,我发现大部分人都不晓得。。。。 \([x^S]F'(x)=\sum_T(-1)^{|S\cap T|} [x^T]F(x)\) \(F(x)=\frac{
阅读全文
摘要:「CTS2019 | CTSC2019」重复(Kmp) Part1 首先我们考虑对于一个已经确定的$t$串,如何检查是否合法 对于$s$串建立$\text\((\)\text$自动机当然可以), 如果当前$\text$指针$j$在$\text$树上的祖先所对应的所有下一个位置$s[ancestor+
阅读全文
摘要:HDU - 5967(LCT) LCT动态维护基环内向树 将树边直接加入,对于根节点记录一个$mark$值存多出来一条边的信息 查询时找到当前树的根,然后根据$mark$值判断 #include<cstdio> #include<cctype> #include<iostream> #include
阅读全文
摘要:HDU - 5333 多维问题容易想到离线 从左到右,每次将$max(u,v) \leq i$的边加入,动态地用LCT维护一颗最大的生成树 每次插入如果产生环,将$min(u,v)$较大的边保留 满足最优性之后,加边删边的时,用树状数组维护边权$\geq j$的总数(即联通块减少的数量),就可以直接
阅读全文
摘要:HDU - 5398(LCT) 用LCT动态维护环 这题需要我们弄一些小性质 假设我们从大的数向小的数连边,那么一定是向大的数的因子连边,加入的边总数就是$n\ln$ 如果这条边已经存在,那么就要从当前产生的环上换下来,存一个最小值 这样就是$LCT$模拟连边过程,总复杂度$n \cdot \log
阅读全文
摘要:"HDU 4117" 构建AC自动机 dp从每一个的子串上转移过来 转移过程中不断匹配,然后统计$fail$树上前缀的最大值,这是一个动态的过程 于是我们用树剖线段树动态维护
阅读全文
摘要:"HDU 5069" 求后缀与前缀的最大匹配长度 我写的很暴力 首先对于前一个字符串,直接匹配到末尾,其实接下来就是求$fail$树上的这段前缀上的每一个点与后一个串在$trie$树上的位置的最长公共前缀长度 我的做法是:将$trie$树树剖,依次访问$fail$树上的每一个节点回答询问 访问$fa
阅读全文
摘要:BZOJ 3172 题目中的文章是由所有单词拼出来的,但是单词直接互相独立 首先单词都丢进AC自动机,然后一个个跑匹配 每一次更新$fail$树上一段路径前缀的节点即可 事实上就是在哪里放一个1,按次向根累加就能得到答案
阅读全文
摘要:POJ - 2778 对于所有串构建AC自动机,将AC自动机上的位置作为状态,暴力矩阵转移即可 int n,m; int a[N]; char s[N]; int val[N]; const int SIZE=101; int trie[SIZE][4]; int End[SIZE]; int fa
阅读全文
摘要:"HDU 2457" 把AC自动机上的状态存进dp状态里,直接暴力转移就可以了
阅读全文
摘要:"ZOJ 3228" 先把模板串都丢进AC自动机 然后跑查询 对于允许重叠的,我们直接对$fail$树上一段路径的节点的答案++ 否则我们分串的长度讨论,对于每种长度的串处理一个答案$dp[i][6]$
阅读全文
摘要:POJ 1204 把要查询的串都扔进AC自动机,然后暴力check就是了
阅读全文
摘要:LOJ3120「CTS2019 | CTSC2019」珍珠 只是想要祭奠做的时候死去的我 约定下文中的$d$为题目中的$D$ Part1 先从最最暴力的定义转移(可以跳过这个) $S$表示个数为奇数的颜色集合 转移多项式(集合幂指数)\(F(x)=\sum_0^d x^{\{i\}}\) $\tex
阅读全文
摘要:[LOJ6538] 烷基计数加强版加强版 定义$F(x)$表示答案多项式 枚举一个点为根,那么我们可以列出$F(x)$的转移方程 $F(x)=x\frac{F(x)^3+3F(x^2)F(x)+2F(x^3)}{6}+1$ 其中$F(x^2)$表示选了两个相同大小,$F(x^3)$表示选了三个大小相
阅读全文
摘要:「HNOI2019」多边形(树形dp) 题目给出的操作和条件都非常抽象,这意味着我们需要极大程度上精简这个问题 环$\rightarrow$序列 首先,我们将环达成$1..n$的序列,每条边就是一个区间,暂且保留所有多边形原本的边 每条边在多边形上都是把区域分成两部分,所以在序列上每条边都是把一个区
阅读全文
摘要:「NOI2019」机器人 (维护多项式dp值) 写的时候觉得这个题整个复杂度升天,代码升天,然后发现正解居然可以真的这样模拟。。。 (而且自己拉格朗日不熟练所以就咕咕咕。。。) Part 35-50 首先是一个简单的区间dp 定义$dp[l][r][Max]\(为区间\)[l,r]$中最大的数为$M
阅读全文

浙公网安备 33010602011771号