2025.5.6 NOI 模拟赛 题解

比赛

T1 NFLS #P12963. 宝石

题意

给定 \(n\) 点的树,每个点 \(i\)\([1,m]\) 内的颜色 \(w_i\),对于所有从中选出有序的 \(k\) 点的方案,求出它们到它们的 \(\text{lca}\) 的路径的并包含的颜色数的总和,\(1\le k,m\le n\le5\times10^5\)

分析

考虑每种颜色的贡献,设当前选择的颜色的点集为 \(S\)

考虑计算出路径并不包含当前颜色的选择 \(k\) 个点的方案数

设删去 \(S\) 中点后剩余连通块的集合为 \(C\),则不包含的方案数为 \(\sum_{c\in C}\binom{|c|}k\),包含的方案数为 \(\binom nk-\sum_{c\in C}\binom{|c|}k\)

对于每种颜色使用虚树处理即可

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

代码

T2 NFLS #P13052. 仪式

题意

给定一棵 \(n\) 点的无根树和 \(k\) 个限制 \((r,a,b,x)\),构造 \(h_{1\sim m}\),满足 \(h_i\in[1,n]\cap \mathbb N\),且对于每个限制 \((r,a,b,x)\)\(\text{lca}_{root=r}(h_a,h_b)=x\)\(n,m,k\le1000\)

分析

\(p(i,j)\) 表示 \(h_i\in subtree_{root=1}(j)\),用 \(P\to Q\) 表示满足 \(P\) 则必须满足 \(Q\)

根据定义显然有

  • \(p(i,1)=1\),连边 \(\lnot p(i,1)\to p(i,1)\)
  • \(p(i,u)\to p(i,fa_u)\)\(\lnot p(i,fa_u)\to \lnot p(i,u)\)
  • 对于所有 \(u,v\) 满足两者之间没有祖先关系,有 \(p(i,u)\to \lnot p(i,v)\),实际上由于已经连了前两种,因此这一部分可以化简为对于所有 \(u,v\) 满足两者为兄弟结点连 \(p(i,u)\to \lnot p(i,v)\),而这一过程容易前后缀优化建图

考虑一条限制 \((r,a,b,x)\) 所需要增加的边,以下边默认 \(a,b\) 互换后还要连一次

\(r=x\),则连 \(p(a,v)\to \lnot p(b,v) \mid v\in son(x)\)\(\lnot p(a,x)\to p(b,x)\)

\(r\)\(x\) 子树中,则在 \(r=x\) 的基础上连 \(p(a,v)\to \lnot p(a,v)\mid v\in son(x),r\in subtree(v)\)

否则连 \(p(a,v)\to \lnot p(b,v) \mid v\in son(x)\)\(\lnot p(a,x)\to p(a,x)\)

总边数 \(O(mn+kd)\),其中 \(d\) 为最大度数,总点数 \(O(mn)\)

后续过程同 \(2-\text{SAT}\)

时间复杂度 \(O(n(m+k))\)

代码

参考

T3 NFLS #18263. 最小化逆序对

比赛结果

\(100+10+82\)\(\text{rk}25\)

posted @ 2025-05-06 18:50  Hstry  阅读(15)  评论(0)    收藏  举报