2023.02.17琐记

2023.02.17琐记

风子大受打击.

往后朝花夕拾

死在每一天的正阳

如此

也是一件快慰的事


2023.02.17(1)

T1

给定数列 \((A_0, A_1, \cdots , A_{2^n - 1})\)

对每一个 \(k \in [1, 2^n - 1]\),求 \(\max(A_i + A_j), 0 \le i < j\le 2^n - 1, (i | j) \le k\)

每次答案由 \(k - 1\) 转移过来,只需多考虑 \((i | j) = k\) 的部分,不妨写个 pair 类型合并一下即可。

T2

给定字符串 \(S\),选择其中的一些字符,要求选择的字符不能相邻。将其余字符删除。

求最终得到的字符串方案数。

\(f_{i,0 / 1}\) 为考虑前 \(i\) 个字符的方案数。

\(f_{i, 0} += f_{i - 1, 0} + f_{i - 1, 1}\)

\(f_{i, 1} += f_{i - 1, 0}\)

考虑去重。即如果选择当前字符 \(x\),其上一个字符位置为 \(j\),会多产生 \(f_{j, 1}\) 的贡献。

不好去重。干脆把选或不选合并起来考虑。

\(f_i\) 表示选到第 \(i\) 个位置时的方案数。那么 \(f_i\)\(f_{i - 2}\) 转移过来。

考虑当前位置选或不选,因此 \(f_i = 2 \times f_{i - 2}\)

再考虑去重。好像还是不会。

捏麻麻滴,乱改一番过了)

T3

构造整数数列 \(A, B\),使 \(A,B\) 各自内部元素两两不同,且 \(A_i, B_i\) 不同。求方案数。

\(A, B\) 中元素值域均为 \([1, M]\)

直接考虑对数的选取,而不是把两个数列分开考虑。然后做不来。

还是先给 \(A\) 随机分配一个方案,这里贡献 \(\binom{n}{m}n!\),然后再考虑对应的 \(B\) 有多少种填法。显然的,每一个 \(A\) 对应的 \(B\) 的填法方案数相同。

不妨以 \(A = (1, 2, \cdots , n)\) 为例。

\(B\) 的填法用容斥算。共 \(\binom{n}{m}n!\) 种分配(先满足组内互异),考虑钦定重复一对,重复两对,...

具体地,当重复 \(k\) 对时,\(n\) 对里面选 \(k\) 对,\(\binom{n}{k}\),其他位置的选取方案为 \(\binom{m - k}{n - k}(n - k)!\)

这个好算。先试一试。 过了。

T4

给定两个排列 \(P,Q\)。求选择 \(k\) 个数对 \((p_i, q_i)\) 的方案数,使得数对集合中不存在 \(p_i > p_j, q_i > q_j\) 的情况。$ 1 \le k \le n \le 300$。

给定两个排列 \(P,Q\)。求选择 \(k\) 个数对 \((p_i, q_i)\) 的方案数,使得不存在 \(p_i > p_j, q_i > q_j\) 但只有其中之一属于数对集合中的情况的情况。$ 1 \le k \le n \le 300$。

考虑容斥。总共 \(\binom{n}{k}\) 种选取方案。

互斥的两个数对可以预处理出来。然后建个图,发现不满足条件的选取就是图上有一条边其两端点都被选择。发现这个图一定是个 DAG

枚举图上选多少个点,在 DAG 上进行 DP。

考虑如何 dp。

T5

2023.02.17(2)

T1

对所有 \(k \in [1, M]\),求数列 \(A = (A_1, \cdots, A_n)\)\(k\) 次前缀异或和后 \(A_n\) 的值。

这个感觉很一眼,直接考虑每个 \(A_i\) 会被运算次数的奇偶性即可。

往细处又有点模糊。

经过一番探索(其实之前就遇到过,不过搞忘了再推一次)这里不是相乘啊喂

\[ans_{k} = \bigoplus\limits_{i = 1}^{n}\binom{k + n - i}{n - i}A_i \]

\[\binom{k + n - i}{n - i} = \frac{(k + n - i)!}{k!(n - i)!} \]

\(\binom{n}{k}\)\(n\& k = k\) 时为奇数,否则为偶数。

那么这里下指标是比较容易枚举的,不妨对于每个 \(A_i\) 找到能够贡献的 \(ans_k\)

但这个数量还是很庞大啊。枚举完需要 \(3\times 10^9\)

\[(k + n - i) \& (n - i) = n - i \]

\(k + n - i\)\(1\) 中去掉 \(n - i\)\(1\) 得到的二进制数就是 \(k\)

算了直接硬刚

\[\begin{aligned} ans_k &= \bigoplus\limits_{i = 1}^{n}\binom{k + n - i}{n - i}A_i \\ ans_{k + 1} &= \bigoplus\limits_{i = 1}^{n}\binom{k + 1 + n - i}{n - i}A_i \end{aligned} \]

捏麻麻滴,我要上具体数学了

对于 一个一个一个 \(A_i\),搞出它的系数前缀和

\[\sum\limits_{k = 1}^{m}\binom{k + n - i}{k} = \binom{m + n - i + 1}{m} \]

考虑前缀异或答案 \(s_k\)\(ans_k = s_{k} \oplus s_{k - 1}\)

烂了

T3

T5

\(n\) 种卡片,\((A_i, B_i)\),分别表示价值和数目。

支持单点修改 \(A_i, B_i\),支持查询在所有卡片中选 \(x\) 张的最大价值,若 \(\sum{B_i} < x\) 则输出 \(-1\)

捏麻麻滴,好像优先队列套二分即可。

问题就在于精确定位需要修改的卡片。

算了还是去写动态开点线段树吧。

写挂了。

爆零了好吗?

posted @ 2023-02-17 18:50  Schucking_Sattin  阅读(36)  评论(0)    收藏  举报