做题记录 26.3.14

\(\textcolor{purple}\odot\) CF2172N New Kingdom

分类讨论

\(k\) 为奇数时显然无解

讨论 \(b+1\)\(k\) 的大小关系

  • \(b+1>k\)

    考虑以下结构:\(1\sim r\) 构成环,\(r+1\sim r+s\) 直接连到 \(1\) 上,\(r+s+1\sim n\) 连成一条链然后连到 \(1\)

    显然需要满足 \(r\ge 3,s\ge 0,r+s<n\)

    此时割边 \(b=n-r\),不妨设 \(s\) 为奇数则奇度点数 \(k=s+1\)

    从而 \(r=n-b,s=k-1\),显然满足 \(r+s=n-b+k-1<n\)

    \(k=0\)\(b=n-1\)\(b=n-2\) 三种情况无法构造

  • \(b+1=k\)

    考虑以下结构:\(1\sim r\) 构成环,\(r+1\sim n\) 直接连到 \(n\)

    显然需要满足 \(r\ge 3,r\le n\)

    此时割边 \(b=n-r\),从而 \(r=n-b\)

    显然满足 \(r=n-b\le n\)

    \(b=n-1\)\(b=n-2\) 两种情况无法构造

  • \(b+1<k\) 时,考虑以下结构:\(1\sim r\) 构成环,\(r+1\sim n\) 直接连到 \(1\),环内有若干弦使得奇度点数满足要求

    显然需要满足 \(r\ge 3,r\le n\)

    显然 \(r=n-b\)\(b=n-1\)\(b=n-2\) 的情况无法构造

    \(b=n-r\) 为奇数时,\(r+1\sim n\)\(1\) 都是奇度点,还需要额外 \(k-b-1\) 个奇度点,考虑将 \(2\sim r\) 两两配对(要求每组点不相邻),选出 \(\frac{k-b-1}2\) 组连上弦,显然 \(k-b-1<r\) 因此可以选出,当 \(r>3\) 时必然可以使得每组都不相邻,\(r=3\)\(b=n-3\) 的情况无法构造

    \(b=n-r\) 为偶数时,\(r+1\sim n\) 为奇度点,需要额外 \(k-b\) 个奇度点,在 \(1\sim r\) 中匹配即可,当 \(r=3\)\(b=n-3\) 时可能无法构造,其它情况一定可行

还需要考虑 \(k=0\)\(b=n-1\)\(b=n-2\)\(b=n-3,b+1<k\) 的情况

\(k=0\) 时,所有点都是偶度点,由于图连通,必然只有一个边双,否则边双树每个叶子中至少有一个奇度点,因此 \(b>0\) 时无解,若 \(n\ge 3\) 则构造环,若 \(n=1\) 则孤点合法,若 \(n=2\) 则只有一种可能的图,显然不满足要求

\(b=n-2\) 时,显然需要有 \(n-1\) 个边双且其中一个为两点的,显然简单图中不存在两个点的边双,因此必然无解

\(b=n-1\) 时,原图为树,需要有 \(k\) 个奇度点,特判 \(n=1\) 的情况(容易处理),则 \(k=0\) 时显然无解,\(k>0\) 时令 \(2\sim k\) 连向 \(1\)\(k+1\sim n\) 连为一条链后连到 \(1\) 即可

\(b=n-3,b+1<k\) 时,若 \(n=3\)\(b=0,k=2\) 显然无解,若 \(n=4\)\(b=1,k=4\) 可证同样无解,当 \(n\ge 5\) 时,令 \(1\sim 3\) 连为环,\(4\) 连到 \(2\)\(5\) 连到 \(3\)\(6\sim n\) 连到 \(1\) 即可

容易做到 \(O(\sum n)\)

代码

参考

\(\textcolor{purple}\odot\) CF2178G deCH OR Dations

为每条弦赋随机权值,定义一条链的权值为所有弦的权值的异或和,则 \(i\) 合法当且仅当 \([1,i]\) 内所有弦的异或和 \(=0\)

\(f_i\) 表示以 \(i\) 结尾的弦的权值的异或和,令 \(g_i\) 表示以 \(i\) 结尾的弦的数量的奇偶性,令 \(i\) 表示第 \(i\) 条弦的权值,则

\[g_i=1\oplus \bigoplus_{j\mid j\cap i} g_j \]

\[f_i=(g_i\times w_i)\oplus \bigoplus_{j\mid j\cap i} f_j \]

将环展开,则转化为加入一个带权区间,查询与给定区间有交的所有区间的权值异或和

显然两个端点分别查询有交的权值异或和即可,多余部分会抵消

容易做到 \(O(\sum n\log n)\)

代码

参考

\(\textcolor{blue}\odot\) CF2170F Build XOR on a Segment

显然答案不超过 \(O(\log V)\)

离线,对右端点扫描线,同时维护 \(mx_{i,x}\) 表示最大的左端点使得区间内可以选出 \(i\) 个数异或和为 \(x\)

时间复杂度 \(O((nV+q)\log V)\)

代码

参考

\(\textcolor{purple}\odot\) CF2165D Path Split

显然是 \(\text{DAG}\) 最小链划分,可以转化为二分图匹配

左侧各有 \(2n\) 级,每级有若干点,左侧第 \(i\) 级只会和右侧 \(i\pm 1\) 有连边,从而黑白染色后可以分为独立的两部分,分别考虑

对于其中每一部分,从上往下依次贪心匹配一定不劣

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

代码

参考

\(\textcolor{purple}\odot\) CF2169F Subsequence Problem

显然一个序列合法当且仅当存在一种对于所有 \(1\le i\le k\) 重排列 \(a_{i,1\sim l_i}\) 的方案,使得将它们拼接后为当前序列的子序列

考虑固定每个 \(a_{i,1\sim l_i}\) 的重排列方案后,计算对应的序列数量

为了不重复,假定每个合法序列在其子序列的位置字典序最小处统计

对于最终序列中每个 \(a_{i,l_i}\),将它的前缀断开,则得到 \(k+1\) 段,其中最后一段可空

\(i\) 段由 \(a_{i,1\sim l_i}\) 可分为 \(l_i\) 小段,第 \(j\) 小段最后一个位置为 \(a_{i,j}\),除了最后一个位置外每个位置不能填 \(a_{i,j\sim l_i}\)

即设第 \(i\) 段的第 \(j\) 小段长度为 \(L_{i,j}\),则其填色方案数为 \((m-(l_i-j+1))^{L_{i,j}-1}\)

从而答案为

\[\prod_{i=1}^k l_i!\times \sum_{L\mid \sum_i\sum_j L_{i,j}\le n} \prod_{i=1}^k \prod_{j=1}^{l_i} (m-(l_i-j+1))^{L_{i,j}-1}\times m^{n-\sum_i \sum_j L_{i,j}} \]

注意到 \(l_i-j+1\) 只有 \(O(l)\) 种取值,令 \(c_x\) 表示 \(l_i-j+1=x\)\((i,j)\) 数量(特别地 \(c_0=1\),因为计入最后一个 \(m^{\ast}\)

则后面部分等价于将长度为 \(n+1\) 的序列划分为 \(\sum c_i\) 段,每一段有参数 \(x\)(确定划分方式后每一段的参数确定),参数为 \(x\) 长度为 \(L\) 的段的贡献系数为 \((m-x)^{L_1}\)

考虑每个 \(c_i\) 分别计算贡献,令 \([x^C] F_e\) 表示 \(c_e\) 组成的段总长度(不含每一段最后一个位置)为 \(C\) 的方案数,显然 \([x^C]F_e=(m-e)^C \binom{c_e+C-1}{C}\)

答案为 \(\prod_{i=1}^k l_i!\times [x^{n-\sum_i l_i}]\prod_e F_e\)

容易做到 \(O(nl\log n)\)

代码

参考

posted @ 2026-03-15 07:20  Hstry  阅读(1)  评论(0)    收藏  举报