JSOISC2022模拟2

wonderfish / 2023-08-02 / 原文

update 2022-07-17

前言

暴力出奇寄(

不会写正解就算了,暴力还出了那么多 sb 问题。T2 手残打错,void dfs 写成 int dfs,T3题目看错 ,T4 \(2 \times 10^{5}\) 但数组开的是 \(10^{5}\)。(关键样例和自己造数据都没查出来?)

wssb。


T1

按位考虑,记录第 \(i\) 位初始时是 \(0/1\) ,最终会变成什么。

(考试时怎么就没想到(wssb

例题 P2114 起床困难综合症


T2

可以把不能在一组的星星之间连边,可以发现是一堆长度 \(\leq 5\) 的链和长度为 \(6\) 的环。

可以先处理出所有链和环的大小,然后计算出从链(或环)中选出 \(k\) 个星星的方案数。

设链(或环)的大小为 \(m\);

链的问题就是从 \(m\) 个元素中选出 \(k\) 个不相邻元素的方案数,即 \(C_{m-k+1}^{k}\)

环的问题可以用链的方案数减去两端都选的方案数,即 \(C_{m-k+1}^{k} - C_{m-k-1}^{k-2}\)

最后的答案用背包处理, \(dp[i][k]\) 表示选择 \(k\) 个星星的方案数,为了节省空间,第一维可以用滚动数组。


T3

前置知识:

\(O(1)\) 查询 LCA

根号分治例题 P3396 哈希冲突

树的直径例题 P1099 树网的核


T4

线段树骗部分分(


咕咕咕