CF / AT 泛做。

感觉要提升速度。

*2700 CF1207G

我测,什么情况。

考虑把所有询问串挂在 ACAM 上面,然后去进行 data structure。

我们其实可以考虑建出关于 \(s_i\) 的一颗依赖关系的树,然后动态加边,加边,然后并查集查询 (bushi)

我们知道了被挂在了 \(u\) 节点上的若干的询问,相当于求某个询问在 \(u\) 节点皮胚的次数,然后我们知道这相当于是 ACAM 的子树和问题,我们可以拿颗树状数组就可以了。

*2700 就这??????????????????????

*2700 CF961F

很难的啦。

考虑 \(border_i \leq border_{i + 1} + 2\).

因为本来就只加入了一对字符,所以来说 \(border\)\(\delta\) 为 2.

所以可以模拟。

AT_dp_z Frog 3

纯真题目。

ABC221H

被薄纱了!!!!

可以考虑分拆数,然后注意容斥掉 \(j\geq m + 1\) 的情况。

要复习学习分拆数了。

*2100 CF1788E

这个上得了 *2100 吗,不是可以随便数据结构?

ARC101E

考虑容斥 \(S = \sum (-1)^{|E|}F(E)\)

\(E\) 表示没有被染色的边。

\(g(2x) = \prod (2x - 1)\)

这是任意染色的方案,容易发现,为偶数没有方案。

用 底p 的方式来方便转移。

\(f_{i, s}\) 表示 \(i\) 处在的连通块大小为 \(s\)

考虑用 dp 带上容斥系数来做这个题。

考虑到有两种情况,一种是合并连通块 : 那就是直接多项式乘法, $f(u, j) = f(v, k)f(u, j - k) $。

还有一种是删掉一条边,这个就是断掉的,这个直接加上 \(-g(j) * f(v, j)\)

因为这相当于连通块少了内部的一条边,所以系数是 -1.

总之这题要注意细节,值得回味。

CF459E

刷水题是吧,排序取消后效性。直接转移。

CF734E

考虑缩点。然后得到一张黑白交替的图。

我们发现,取出来树的直径,在一直点中点就可以按照层次来变色。

CF955C

春测题喔!

感觉是简单的,考虑所有 \(p \ge 3\) 的塞进去 vector, \(p = 2\) 特判,然后二分一下。

CF280C

考虑线性期望和。 \(E(G) = \sum E(v)\).

一个点 \(u\) 会被选到的概率是 \(\frac{1}{dep_u}\)

而删除花费的是 \(1\), 那么就有 \(E(u) = \frac{1}{dep_u}\).

CF19D

考虑树套树, 要这样写!!!!我测你的马。

*st[pos].upper_bound(y)

CF1806E

考虑拼起来若干条 \(len_i \geq \sqrt n\) 的链,然后根号分治。

AT_dp_w

考虑将 dp 数组拍到线段树上面。

状态 \(f_{i, j}\) 是最后一个 1 的位置在 \(j\).

然后考虑把 \(r\) 位置的 \((l, r)\) 的贡献直接加到线段树上。

CF940F

带修莫队。可以思考一下那个 \(mex\) 的结论,这几天薄纱简单题真的好爽!!

CF319C

简单题,注意离散化的使用。

*2500 CF958C3

很难的啦。考虑简单 dp.

\(f_{i, j}\) 表示正常的划分段 dp,然而这题变成了 \(n^2k\) 的做法了。

考虑到 \(f_{i, j} \equiv s_i \mod p\)

那么考虑到 \(f_{k, j - 1} + \delta\)\(f_{k', j-1} + \delta'\) 这两者的关系。

\[f_{k, j - 1} + \delta \equiv f_{k', j-1} + \delta' \mod p \]

考虑到 \(\delta\) 均小于 \(p\), 是不是可以思考一下?

然后我们如果有 \(f_{k, j - 1} < f_{k', j - 1}\)。我们是不是发现 :

\[f_{k, j - 1} + \delta < f_{k', j-1} + \delta' \]

那么如何证明呢?

考虑:\(f_{i, j} \equiv f_{k, j-1} + \delta\) 以及 \(\delta < p\) 这性质,我们显然是要让 \(f_{k, j - 1}\) 补上 \(\delta\) 达到和 \(f_{i, j}\) 同余的效果,那么我们果断选择更小的 \(f_{k, j - 1}\) 那无论怎么样都是不优秀的,这样可以考虑分解成 \(k\times p + r\) 诸如此类形式,那么我们果断直接选 \(f_{k, j - 1}\) 最小就行。

\(O(nk)\)

*2400 Team Work

口胡。

考虑《组合数学引论》的方法,递归求导。

我们知道 :

\[\sum i \tbinom{n}{i} = n2^{n - 1} \]

然后考虑扩展结论。

\((1 + x)^n = \sum\tbinom{n}{i}x^i\)\(x = 1\) 的情况下求导可以得到原式。

那么通过人类智慧可以得到 :

\[\sum a_i\times n^{\underline i}\times2^{n - i} \]

这个实际上是通过对于求导的拟合系数来计算的。通过对于求导的观察,不难发现 :

\[a_i \to a_{i - 1} + i \times a_i \]

然后可以直接计算。

但是是没有不观察 \(a _i\) 的办法吗????显然不是。

我们可以发现只有 \(2^{n - i}\) 是不与多项式相关的,这个时候可以特判的,那应该干什么????拉格朗日插值, bingo!!

*2600 CF1699E

很难得啦,考虑贺题。

考虑固定最小值 \(p\), 然后去求最小的最大值。先去重。

然后开始人类智慧了,既然我们枚举了最小值 \(p\), 那么我们显然是想要将一个数分解为 \(\geq p\) 的最小值对不对?这个时候我们可以考虑倒序转移,那么这样最大值也是倒序的,那么怎么求呢?

不妨设其为 \(f_x\) 那么和 \(x\) 相关的是类似质因数分解的操作,而我们更新与 \(p\) 有关的,只有任意的 \(d | p\) 那么我们就可以考虑枚举 \(p\) , 去维护一个 \(\frac{d}{p}\) 这个是调和级数复杂度,也就是 \(n\ln n\)

*2300 CF76F

很有趣的一个问题,算是一类 trick。

考虑到我们正常的 \(\rm cdq\) 分治都要写巨长的分类讨论,但是类似此类的单元分类讨论是否有简短的解法呢?

考虑固定 \(t_i\) 这一维,然后有 :

\[|x_i - x_j|\leq |t_i - t_j|\times v \]

讨论符号有(在乱打) :

\[x_i - t_i\times v \leq x_j - t_j \times v (x_i >x_j, t_i > t_j) \]

\[x_i + t_i\times v \geq x_j + t_j \times v (x_i <x_j, t_i > t_j) \]

\[x_i + t_i\times v \leq x_j + t_j \times v (x_i >x_j, t_i < t_j) \]

\[x_i - t_i\times v \geq x_j - t_j \times v (x_i <x_j, t_i < t_j) \]

我们定义 \(a_i = x_i +t_i\times v\), \(b_i = -x_i + t_i\times v\)

然后我们可以考虑固定 \(t_i < t_j\), 想要转移,那么我们想要 \(x_i \leq x_j\) 那么就是满足 \(a_i \leq a_j\), \(b_i \leq b_j\), \(x_i \geq x_j\),那么就是 \(a_i \geq a_j\), \(b_i \geq b_j\).

然后我们可以考虑固定 \(t_i > t_j\), 想要转移,那么我们想要 \(x_i \leq x_j\) 那么就是满足 \(a_i \geq a_j\), \(b_i \geq b_j\), \(x_i \geq x_j\),那么就是 \(a_i \leq a_j\), \(b_i \leq b_j\).

此时 \(a_i, b_i\) 同号了 qwq, 那么此时,显然我们直接让此类二元组最多,我们就可以二维偏序了。

所以我们直接可以求一个二维偏序,所以可以规避掉正儿八经的分类讨论。

ABC136F

点集内的贡献是 \(2^{n - 1}\), 那不在点集内呢?

考虑一个点作为坐标轴原点,然后用二维数点来计算包含某个点的矩形的数量。无非就是 \(1.3\)\(2.4\) 象限的组合。

考虑先至少选完 \(1.3\),至少选完 \(2.4\),再减去至少 \(1.2.3.4\) 这个是一个很经典的容斥。

然后就是线性对数。

[ABC248G]

LGJ 老题了。

考虑

\[\sum_{d| \gcd(i, j) }\varphi(d) = \gcd(i, j) \]

然后数若干个森林有多少条路径,这个题目是困难的,我不会,长大以后再学习。

*2700 CF1303G

很难的啦,考虑贺题。

\[\sum ^r_{i = 1} ia_i \]

考虑 \(rt\)\((u, v)\) 中的位置 \(p\).

\[\sum^p_{i = 1} ia_i + r\sum_{i = p + 1}^ ra_i + \sum_{i = p + 1} ^ r (i - r) a_i \]

这个第一第三个部分就是可以的,考虑已经插入了 \((p, s_1)\) 这个问题,无非就是求 :

\[(p + l)s_v + s_1 + s_3 \]

\[ps_v + ls_v + s_1 + s_3 \]

但是代码很难写,我的评价是,很难的啦(贺了)。

*2500 Lena and Queries

注意到动态开店李超树由于交换节点的性质,其实是 \(O(n)\) 空间的,很神秘。

然后就考虑线段树分治,把操作挂到线段树的节点上,但是我们发现,其实远不如直接树套树好写,一句话,不如原神。

所以是 \(O(n\log n)\) 的空间。

CF : #202909002

*2700 CF906D

考虑暴力。总所周知 :

\[a^b \equiv a^{b \operatorname{mod} \varphi(p) + \varphi(p)} (\operatorname{mod} p) \]

考虑到大概是 \(log^2\) 次会 \(phi_i \to 1\) 直接暴力乘就好了。

CF : #203611703

CF813F

一类 trick.

考虑先求出一部分的最小值,然后再跑 dijkstra 来更新。
这题里面体现的是斜率优化。

然后在 P5304 [GXOI/GZOI2019] 旅行者

无非就是排除掉次短路的情况,但是其实有一个优美的手法。

对于 \(u\) 进行二进制分组, 然后建立超级源点跑就行了。

CF455B

trie 上博弈。

考虑计算先手是否有必胜态或者必输态。

讨论 :

1.均可以 :先手可以自己乱搞到最后自己是先手

2.只 win : 那就直接判奇偶

3.只 lose : 显然会寄掉,很难的啦。

4.不胜不败:后手操控游戏,被拿捏啦。

CF859E

ptsd 题。

一眼 \(a \to b\),填数游戏。

基环树 \(\times 2\),树就像填数游戏一样给边定向,有一个点寄了,就这样。

CF1310B

貌似自己参加过这一场。

考虑 dp。我们只关心自己的主队胜负就行了。

\(f_{i, x, y}\) 表示 \(i\) 号比赛,胜者主队,败者主队。

\[f_{i, x, y} = f_{lc, x, 0} + f_{rc, y, 0} + (x | y) \]

初始化随便搞搞。

CF1202F

贺题速度吓人。

枚举 \(k\)

考虑这样:

\[a'k \leq a \leq a'(k + 1) \]

\[b'k \leq b \leq b'(k + 1) \]

整理一下 :

\[\lfloor \frac{a + k}{k + 1}\rfloor\leq a' \leq\lfloor \frac{a}{k}\rfloor \]

本质上只是考虑钦定范围,然后对于边界微调。

整除分块即可。

posted @ 2023-07-02 14:49  Cust10  阅读(31)  评论(0)    收藏  举报