8月杂题选做

上回说到:2022.7

关于难度

\(\color{gray}\bigstar\) 可以秒杀的题。

\(\color{green}\bigstar\) 思考一会儿后可以秒的题。

\(\color{blue}\bigstar\) 需要较长时间思考的题。

\(\color{Gold}\bigstar\) 看题解、稍加指点就会做的题。

\(\color{red}\bigstar\) 看题解后需要较长时间消化,甚至现在都没有完全理解的题。


F - Flipping Coins (atcoder.jp) 放在多项式里。

https://atcoder.jp/contests/abc212/tasks/abc212_h 放卷积里。

https://atcoder.jp/contests/abc213/tasks/abc213_h 放多项式里。


ARC080F *3078 \(\color{blue}\bigstar\)

有无数枚硬币在数轴上,一个点一个硬币,有 \(n\) 个硬币朝下,每次操作可以选择一个长度为奇素数区间把这个区间中的硬币全部翻转,求最少多少次操作可以把所有硬币朝上。

\(n\le 100\)

显然先进行一个差分,那么记录异或值,相当于把两个数反转。

考虑两点距离,如果是偶数那么根据哥德巴赫猜想可以知道操作数为 \(2\),奇数的话就是 \(1,3\)。然后考虑尽量匹配 \(1\) 的,剩下的直接算即可,那么 \(n\) 比较小,直接二分图匹配即可。

code


ARC080E *2277 \(\color{green}\bigstar\)

有一个长度为 \(n\) 的排列 \(p\)\(n\) 是偶数),每次操作选择 \(p\) 中相邻两个数把他们删除并放到 \(q\) 的开头,求无法操作时字典序最小的 \(q\)

\(n\le 2\times 10^5\)

考虑从前向后,就是选两个数需要满足左边,右边和中间部分长度都是偶数的情况下字典序最小,直接维护即可。

code


ARC083F *3541 \(\color{Gold}\bigstar\)

\(2n\) 个球,第 \(i\) 个球在 \((x_i,y_i)\),现在 \((i,0),(0,i)(1\le i\le n)\) 都有一个 bot,每次选一个 bot 朝对应方向走,拿走遇到的第一个球,求所有 \((2n)!\) 种顺序中,有多少种方案可以选走所有的球。

\(n\le 10^5\)

考虑对于一个球 \((x,y)\),把 \(x\) 行和 \(y\) 列连边,那么可以发现形成一个基环树森林,考虑答案合并起来很简单,因此直接考虑一个基环树怎么做。

一个球要么被列拿,要么被行拿,相当于给边定向,那么最多只有两种方案,暴力判断即可,比较阿拉丁。

code


ARC079F *2636 \(\color{green}\bigstar\)

有一棵 \(n\) 个点的有向基环树,求是否可以给每个点赋一个权值 \(a_i\),满足以下条件

  • 所有数都是非负整数。
  • 对于一条边 \((i,j)\),满足 \(a_i\ne a_j\)
  • 对于一个 \(i\),满足对于所有 \(0\le x<a_i\),都存在一个 \(j\),满足 \((i,j)\) 有边并且 \(a_j=x\)

\(n\le 2\times 10^5\)

这个条件简单来说就是所有儿子的 \(\text{mex}\),如果是树很好做,考虑环怎么搞。

也比较简单,考虑先断掉一条边,那么这条链的结尾要么是原来的数,要么加一,对两种情况都做一遍然后判断是否合法即可。

code


ARC081F *2608 \(\color{green}\bigstar\)

有一个 \(n\times m\) 的 01 矩形,每次操作可以选择一行或者一列全部翻转,经过若干次操作之后,求最大全为 \(1\) 子矩形面积。

\(n,m\le 2000\)

考虑先确定一个右下角,那么肯定是一路向上,如果不一样就反转,然后操作列即可。

观察这个东西,相邻两列来说,是否操作一列取决于左右两个是否相等,行业一样,可以发现进行一个行差分,然后列差分,求最大同色子矩形即可。

code


ABC218G *2217 \(\color{green}\bigstar\)

题比较长,自己看吧。

可以发现最后到了一个叶子节点,对应的得分是固定的,可以先算出所有叶子的得分,由于要支持删除,用 set 代替堆即可。

考虑如果先手操作肯定找大的,后手找小的,因此直接从下往上转移即可。

code


ARC074E *2519 \(\color{Gold}\bigstar\)

\(n\) 个球,每个球可以染成三种颜色之一,现在有 \(m\) 个条件,每一个都形如在 \([l_i,r_i]\) 中有 \(x_i\) 个不同的颜色,求合法方案数。

\(n\le 300\)

降智了,这都做不出来。

考虑 \(n\) 很小,又正好三种颜色,直接设三维 dp 表示每个颜色最后出现的位置直接做久好了。

code


ABC264Ex *2660 \(\color{green}\bigstar\)

有一棵 \(n\) 个点的数,求对于所有 \(1\le i\le n\),求对于 \([1,i]\) 中所有点,有多少个子图满足是一个满二叉树,且根是 \(1\)

\(n\le 3\times 10^5\)

考虑一次询问怎么做,显然设 \(f_{i,j}\) 表示 \(i\) 子树中 深度为 \(j\) 的二叉树数量,直接向上合并即可。

注意到二叉树深度最大为 \(\log n\),如果加一个点深度大于 \(\log n\) 显然没有影响。

剩下的直接暴力向上修改即可。

code


打了 AGC 058,开场看 B 结果秒了,首杀,当了 \(12\) 秒世界第一。

结果 A 做半天,然后屁都不会 rk 153 离场,上分了 perf 2k5+。

B 做法简单说一下,可以考虑操作等价于选择一个区间把这个区间所有数变成这个区间中的最大值,那么直接找一个数当最大值的区间,然后设 \(f_{i,j}\) 表示前 \(i\) 个数覆盖了 \([1,j]\) 的方案数,直接前缀和优化一下即可。


https://atcoder.jp/contests/abc217/tasks/abc217_h 记在dddd。


ARC146C *2428 \(\color{blue}\bigstar\)

求有多少个集合 \(S\) 满足

  • 集合元素 \(\in [0,2^n]\)

  • 对于所有非空子集 \(T\),都满足要么 \(|T|\) 是奇数,要么满足 \(T\) 的异或和不是 \(0\)

\(n\le 2\times 10^5\)

如果不考虑奇数,那么显然就是线性基个数。

这个奇数比较难搞,可以把所有数都乘 \(2\) 加一,这样问题就解决了,然后考虑这个东西的线性基个数,相当于就是线性基里有的东西里面选奇数个异或出的东西都不能选,这个可以直接算。

code


打了 ABC265,秒了 E,发现 F 是思博题直接扔给 psz 就润了,然后冲 G,结果 \(4\) 个 WA 然后过了,去 Ex 发现会了,但是没有写完,结果 psz 没有过 F,然后开黑车队就全部过了 G 但是没有过 F,流汗黄豆。


ABC265F *2290 \(\color{gray}\bigstar\)

\(n\) 为坐标系上有两个点 \(p,q\),求有多少个点 \(A\) 满足到 \(p,q\) 的曼哈顿距离都 \(\le D\)

\(n\le 100,D\le 1000\)

直接考虑每一维过去,设 \(f_{i,j,k}\) 表示前 \(i\) 维,离 \(p,q\) 的距离分别是 \(j,k\) 的方案,考虑下面一维选一个相当于就是加上两个绝对值,在数组上就是两条斜线,前缀和简单维护即可,复杂度 \(O(nD^2)\)

code


ABC265G *2436 \(\color{green}\bigstar\)

维护一个长度为 \(n\) 的序列,值域 \(\in [0,2]\),有 \(Q\) 次操作,询问区间逆序对或者区间置换。

\(n,Q\le 10^5\)

考虑只有询问怎么做,直接线段树记录区间每个数出现个数,然后相当于前面比后面大的方案数算一下即可。

考虑有置换,怎么搞区间置换后求逆序对数。

直接设 \(d_{i,j}\) 表示有多少个 \(i\)\(j\) 的前面,然后置换就是直接置换即可。

实现比较阿拉丁,主要是因为样例太弱了。

code


ABC266G *2045 \(\color{green}\bigstar\)

\(R,G,B\)R,G,B,排成一个序列,求有多少个序列满足恰好有 \(K\) 个子串是 RG

\(R,G,B\le 10^6\)

考虑先放 \(K\)RG,然后把 B 插板法放进去,然后直接考虑每一个空必然是 G 放在 R,因此分别插板放,然后组合数一算即可。

code


ARC069F *3200 \(\color{green}\bigstar\)

\(n\) 个旗,每个旗放在 \(x_i,y_i\) 中的一个,求放了后旗两两之间距离的最小值最大是多少。

\(n\le 10^4\)

直接来,考虑先二分一下答案,然后变成判定问题。

两个选一个,直接 2-sat 即可,建图暴力 \(O(n^2)\),线段树优化一下即可。

code

posted @ 2022-08-30 17:23  houzhiyuan  阅读(69)  评论(0编辑  收藏  举报