9 月做题记录

CF1630D *2400

\(B\) 表示所有能翻转区间长度的集合。那么对于任意 \(x,y \in B\),都满足 \(x-y \in B\)。所以 \(\gcd(b_1,b_2,\dots,b_n) \in B\)。考虑长成什么样的序列满足要求。考虑记 \(g_i\) 表示第 \(i\) 个数是否翻转。记 \(f_i\) 表示 \(\bigoplus_{i=x \bmod g} g_x\)。 只有当所有 \(f\) 都相等时才满足要求。
然后 \(dp_{i,j}\) 表示前 \(i\) 个数,\(f\) 的异或值为 \(j\)\(\sum a_i\) 的最大值。

CF1619H *2400

首先这东西一定是个置换环。如果没有交换操作很 naive,考虑怎么维护这个交换操作。
\(nxt_i\) 表示 \(i\)\(B\) 次后的结果。然后只会影响 \(B\)\(nxt\),暴力维护即可。
单次查询是 \(O(\frac{B}{n})\) 的。
\(B=\sqrt n\) 可以做到 \(O(n \sqrt n)\)

CF1585E *2400

link

CF906C *2400

这个题没有 \(2400\) 吧。
直接记 \(dp_s\) 表示认识的人的集合为 \(s\) 时的最小步数,暴力枚举每个人认识人的状态转移即可。

CF342E *2400

考虑两种暴力。
第一种是把所有红点取出来进行 bfs。
第二种是把和所有红点就行bfs。
考虑对操作分块。
对于之前的整块,进行第一种暴力。单次 bfs \(O(n)\)。总共操作根号次。
对于当前的散块,取块内所有红点进行 lca。
最后的复杂度 \(O(n \sqrt n)\)

P5443 紫

跟上题一样,都是按操作分块然后暴力维护。

CF1083E *2400

多选一个矩形增加的贡献只与前一个相关。
然后直接 dp 就行,斜优一下就行了

CF145E *2400

维护一下 \(4\)\(7\) 的个数和不下降不上升。翻转相当于交换。

CF444C *2400

看到区间推平操作直接考虑珂朵莉树。线段树维护一下权值即可。

CF1340C *2400

考虑记 \(f_{u,i}\) 表示到了 \(d_u\),绿灯还有 \(i\) 的时间。
直接 01 bfs 即可。

CF815C *2400

首先那个关系建出来必定是棵树。
那么 \(dp_{u,i,0/1}\) 表示以 \(u\) 为根的子树里选了 \(i\) 个并且有没有使用优惠券的方案数。
树上背包即可。

CF379F *2400

考虑两棵树合并只要查 \(4\) 个点就可以得到新树。直接做就行。

CF632E *2400

看这个数据范围和时限感觉 \(n^3\) 能卡的过去。那考虑背包。
因为要满足恰好 \(k\) 个所以先把最小的价值减掉,把他当 \(1\) 进行处理就可以了。

CF220E *2400

发现区间长度越大越容易满足条件。那么对于左端点找一个最近的右端点即可。双指针扫一遍树状数组维护一下。

CF915F *2400

感觉这个 dsu 很难想到阿。思维还是太烂了。
考虑把式子的贡献拆成 \(\max - \min\)。然后维护 \(\max\) 的话就从小到大考虑每个点,把他的访问过的儿子的贡献算进去。\(\min\) 同理。

AGC002D *2514

首先两点间最大值最小这个很容易想到重构树。
把边的编号当边权建出重构树,查一下最高能跑到的点即可。

CF1637F *2500

首先,所有塔必然在叶子节点。
然后以 \(h\) 值最大的为根,这样必然是从两棵子树里挑塔。
然后直接 dp 就行。

CF1310D *2300

考虑给每个点随机染色。然后跑一遍 \(dp_{i,j}\) 表示走了 \(i\) 个点到 \(j\) 的最短距离。
然后你发现重复上述过程一定次数出错的概率就非常小了。

ABC219G *2287

很妙阿,完全想不到。
对每个点的度进行根号分治。
若度数 \(<B\) 那么暴力修改。
若度数 \(>B\) 那么对这个点打个标记并记一下时间戳,在之后进行覆盖。

CF338E *2600

\(b_i=h-b_i\),那么条件变成 \(a_i \ge b_j\) 就能匹配。
考虑开一个 \(w\) 数组。对于一段区间,\(w_{a_i}-1\)\(w_{b_i}+1\)
那么这段区间满足要求的情况就是对于任意前缀和都不小于 \(0\)
离散化 + 线段树。

CF1717E *2200

推式子。

CF1715E *2400

\(dp_i=dis_i+(i-j)^2\)
直接转移复杂度是 \(n^2k\) 的,斜优一下就是 \(nk\) 的了。

posted @ 2022-09-05 08:09  dd_d  阅读(42)  评论(0编辑  收藏  举报