做题记录 25.6.6

\(\textcolor{blue}\odot\) CF1781E Rectangle Shrinking

最优解为取到原本所有矩形的并

划分为三部分:占据第一行,占据第二行,占据两行

每部分内部的调整是容易的,前两部分之间显然没有影响,考虑第三部分对前两部分的影响

对于第三部分中的矩形,若上半部分完全包含于第一行中的一个矩形,则砍掉上半部分,否则删去它覆盖到的矩形(或矩形的一部分),下半部分同理

可以用单调栈维护,也可以用 \(\text{odt}\)

时间复杂度 \(O(\sum n\log n)\)

代码

参考

\(\textcolor{blue}\odot\) CF1780F Three Chairs

\(c_x\)\(a_i=x\) 的数量,令 \(s\) 为其前缀和,令 \(N=\max a_i\),则答案为

\[\begin{aligned} &\sum_{1\le x<y\le N}[\gcd(x,y)=1]c_xc_y(s_{y-1}-s_x)\\ =&\sum_{d=1}^N\mu(d) \sum_{x=1}^{\lfloor\frac Nd\rfloor}\sum_{y=x+1}^{\lfloor\frac Nd\rfloor}c_{xd}c_{yd}(s_{yd-1}-s_{xd})\\ =&\sum_{d=1}^N\mu(d) \sum_{x=1}^{\lfloor\frac Nd\rfloor}\sum_{y=x+1}^{\lfloor\frac Nd\rfloor}c_{xd}c_{yd}s_{yd-1}-\sum_{d=1}^N\mu(d) \sum_{x=1}^{\lfloor\frac Nd\rfloor}\sum_{y=x+1}^{\lfloor\frac Nd\rfloor}c_{xd}c_{yd}s_{xd}\\ =&\sum_{d=1}^N\mu(d) \sum_{y=1}^{\lfloor\frac Nd\rfloor}c_{yd}s_{yd-1}\sum_{x<y}c_{xd}-\sum_{d=1}^N\mu(d) \sum_{y=1}^{\lfloor\frac Nd\rfloor}c_{yd}\sum_{x<y}c_{xd}s_{xd}\\ \end{aligned} \]

容易 \(O(N\ln N)\) 求出

代码

\(\textcolor{blue}\odot\) CF1780E Josuke and Complete Graph

答案等于

\[\begin{aligned} &|\{\gcd(x,y)\mid 1\le x<y\le r\}|\\ =&\sum_{d=1}^r[\sum_{l\le x<y\le r}[\gcd(x,y)=d]>0]\\ =&\sum_{d=1}^r \left[d\left(\left\lceil\frac ld\right\rceil+1\right)\le r\right]\\ \end{aligned} \]

数论分块即可

时间复杂度 \(O(\sum \sqrt l)\)

代码

\(\textcolor{purple}\odot\) CF1780G Delicious Dessert

求出 \(\text{sa}\)\(\text{height}\),从大到小枚举 \(\text{lcp}\) 长度为 \(i\),用并查集维护等价类,令 \(c_x\) 为大小为 \(x\) 的等价类数量,则 \(i\) 的贡献为 \(\sum_{i\mid x}c_x\cdot x\)

代码

参考

\(\textcolor{blue}\odot\) CF1779F Xorcerer's Stones

考虑通过若干次操作令整棵树所有点权异或和变为 \(0\),此时再操作一次点 \(1\) 即可

\(2\nmid sz_u\) 时,操作 \(u\) 不会改变子树 \(u\) 内权值的异或和,因此操作无效,因此只考虑 \(2\mid sz_u\)\(u\)

显然 \(2\mid sz_u\)\(u\) 至多操作一次(除了最后操作 \(1\) 的一步)

考虑树形 \(dp\),令 \(f_{u,v,x}\) 表示要令结点 \(u\) 和其编号 \(0\sim x\) 的子树中所有权值的异或和为 \(v\),最后一个部分(\(u\) 本身,每个子树,分别视为一个部分)的异或和,若无法做到则为 \(-1\),若子树内只操作结点 \(u\) 则为 \(-2\)

显然 \(f_{u,a_u,-1}=a_u\)

转移枚举编号为 \(i\) 的子树 \(v\)

\[f_{u,j\oplus k,i}\gets [f_{u,j,i-1}\ne-1][f_{v,k,ls(v)}\ne -1]k \]

其中 \(ls(u)\) 表示最后一个子树的编号

\(2\mid sz_u\)\(f_{u,0,ls(u)}\gets -2\)

时间复杂度 \(O(n\omega^2)\),其中 \(\omega=32\)

代码

参考

\(\textcolor{blue}\odot\) CF1779E Anya's Simultaneous Exhibition

竞赛图,因此答案为缩点后第一个 \(\text{SCC}\) 中的全体点,先 \(n\) 次查询求出每个点的入度(可以优化到 \(n-1\) 次),然后根据兰道定理求出合法点集

代码

参考

\(\textcolor{blue}\odot\) CF1498E Two Houses

无需询问,根据兰道定理直接通过 \(k\) 求出所有 \(\text{SCC}\),容易求出答案,时间复杂度 \(O(n\log n)\),可优化到 \(O(n)\)

代码

参考

\(\textcolor{purple}\odot\) CF1778E The Tree Has Fallen!

把树展开为序列,则题目中的子树对应 \(\text{dfn}\) 的一个区间或一段前缀加一段后缀,倍长,则都是区间的形式,前缀线性基即可,时间复杂度 \(O(n\log V+q\log V)\)

代码

posted @ 2025-06-07 08:29  Hstry  阅读(2)  评论(0)    收藏  举报