随笔分类 - 题解
摘要:之乎者助得甚? 给定字符串$s$和序列$w$,试求 $$ \max_{1\le i using namespace std; const int N=1e5+10; int n,w[N],sa[N],ht[N],rc[N]; char s[N]; void buildSa() { static in
阅读全文
摘要:你猜猜题怎么出出来的? 显然第$i$场的答案为 $$ \frac{1}{\binom{n_i}{m_i}\binom{n_i}{k_i}}\sum_{x=0}^{k_i}\binom{n_i}{m_i}\binom{m_i}{x}\binom{n_i m_i}{k_i x}x^L =\frac{1}
阅读全文
摘要:神奇的思路,还是要学习一个。 题意:给你一个字符串,并定义两个前缀的lcs、两个后缀的lcp,求式子膜$2^{64}$的值。 $$ \sum_{1\le i$,咱将它们的lcs、lcp拼起来,可知 $$ s[i lcs(i,j)+1,i+lcp(i,j) 1]=s[j lcs(i,j)+1,j+lc
阅读全文
摘要:漫山遍野都是fake的光影。 题目 1. [LGP4859] 已经没有什么好害怕的了 给定两个长度为n的数组a和b,将a中元素与b中元素配对,求满足ai bj的配对(i,j)个数减去满足ai(≥)bj的配对(i,j)恰好为k=(n+k)/2的方案数。~~这样就能与第二个问题形式上保持一致~~。称这样
阅读全文
摘要:世界是物质的,物质是运动的,运动是有规律的,规律是可以被认识的。 关于期望意义下min max容斥,我们认为每个事件的时间来认识事件,max/min S表示集合S中所有时间最后/最前出现的事件,E(max/min S)表示事件max/min S首次发生的期望时间。这样,仿照普通min max容斥的推
阅读全文
摘要:世界是物质的,物质是运动的,运动是有规律的,规律是可以被认识的。 期望意义的最值反演 $$ E(\max S)=\sum_{T\subseteq S}( 1)^{|T| 1}E(\min T) $$ 其中$E(\max S)$,$E(\min S)$分别表示$S$中所遇事件全部出现和至少出现一个的期
阅读全文
摘要:"题目链接" 不妨规定先翻转某些行,再翻转某些列。 设$F[x]=\min(\mathbb{pop}(x),\mathbb{pop}((2^n 1)\veebar x))$,$S_i$为第$i$列的表格状态。 枚举每一行的翻转情况$p$,此时的答案为$\sum_i F[S_i\veebar p]$。
阅读全文
摘要:6的倍数 1/(1 x^6) 最多9块 (1 x^10)/(1 x) 最多5块 (1 x^6)/(1 x) 4的倍数 1/(1 x^4) 最多7块 (1 x^8)/(1 x) 2的倍数 1/(1 x^2) 最多1块 (1 x^2)/(1 x) (=1+x) 8的倍数 1/(1 x^8) 10的倍数
阅读全文
摘要:膜一发 "KsCla巨佬" ~~~cpp include using namespace std; typedef long long ll; const int N=2e5+10; struct __SAM { int lst,tot,ch[N][4],prt[N],mxl[N]; void in
阅读全文
摘要:"题目链接" 分析 一类树(连出的边数集合一定)的贡献 $$ \mathbb{Ans}(\{d_n\}|\sum_id_i=2(n 1))=\prod_ia_i^{d_i}\prod_id_i^m\sum_{i}d_i^m $$ 引入Prufer序列,设$d_i$为点(联通块)在序列中出现的次数,转
阅读全文
摘要:线段树合并裸题 ~~~cpp include const int N=2e5+5; int tot,rt[101],ans[N]; struct Node {int ls,rs;} t[N 200]; void insert(int&x,int l,int r,int p) { if(!x) x=+
阅读全文
摘要:"题目链接" 显然有贪心每次选择最大的两个数来做。 于是暴力地把最大的两个数调整到非负(暴力次数不超过1e5),接下来使用矩阵乘法即可。 $$ \begin{pmatrix} B'\\S'\\T' \end{pmatrix} = \begin{pmatrix} 1&1&0\\ 1&0&0\\ 1&1
阅读全文
摘要:"题目链接" 矩阵加速裸题。注意G(x+1)=G(x) A。 cpp // luogu judger enable o2 include define ll long long using namespace std; const int N=5e2+5; const int inf=0x3f3f3
阅读全文
摘要:"题目链接" 不妨设$n\le m$ $$ \begin{aligned} ans&=\sum_{i=1}^n\sum_{j=1}^m\varphi(ij)\\ &=\sum_{i=1}^n\sum_{j=1}^m\frac{\varphi(i)\varphi(j)\gcd(i,j)}{\varph
阅读全文
摘要:先要推式子 $$ \begin{aligned} \varphi(x)\varphi(y)&=(x\prod_{p|x}\frac{p 1}p)(y\prod_{p|y}\frac{p 1}p)\\ &=(\prod_{p|xy}\frac{p 1}p)(\prod_{p|\gcd(x,y)}\fr
阅读全文
摘要:"TheLostWeak" ~~讲解得十分清楚,就不造轮子了~~ cpp include define ll long long define ls (x L[N]; int val[N 1; build(ls,l,mid); build(rs,mid+1,r); val[x]=min(val[ls
阅读全文
摘要:"题目链接" 容斥+隔板法+Lucas定理 cpp include using namespace std; const int N=1e5+10; int n,m,t,mod,ans; int fc[N],fv[N],b[15]; int lucas(int n,int m) { if(mn) r
阅读全文
摘要:"题目链接" 显然一定存在最优解满足编号小的节点深度越深,即从小到大的优先选择(叶节点|除自己以外子树节点都已经被标号)的节点标号(影响最小),存在取法(顺序)得到最优解。 因此考虑对叶节点状压,转移过程中需要计算出当前已经被直接或间接地确定的节点的数量c作为下一个叶节点的编号。复杂度O((n+n)
阅读全文
摘要:关于匹配串T在模式串中出现的位置不一定按顺序……只需要保证位置差不过k。 于是……FFT板题
阅读全文
摘要:~~治好了我的树上莫队/带修莫队恐惧症……~~ 对树的分块要求块内的元素都联通,可以参考[SCOI 2005]王室联邦的分块做法。对于路径的修改,若已经存在x y的路径,要转化到X Y的路径(此处所言路径不包含两点的lca),可以发现路径X Y等于路径x y、路径X x、路径Y y这三者的对称差(异
阅读全文

浙公网安备 33010602011771号