Category: Petrozavodsk Programming Camp


Petrozavodsk Winter 2018. Day 3. AtCoder Contest

A. Vacant Seat

然后知道在那一边,然后二分。

D. Knapsack and Queries

还可以做到更强。

维护 deque。复杂度

E. XorTree

,等价于 异或 。连边,连通块内 不变,等价于最大化划分为异或和为 的连通块个数。 相同的可以直接两两一组。剩下的 计算。

F. Antennas On Tree

等价于任意一个 的点,至少有 个儿子的子树有值。以一个 的点为根,可以保证子树外至少有一个。

G. Rectangles

H. Generalized Insertion Sort

Q4805 的构造部分对任意图的通解。

对于根节点挂多条链,在每条链的链底维护排好序的一部分,把根节点的值插入排序。如果根节点就是自己,就随便扔到一个链最后,当重新回到根的时候必然做完了这条链,多 次。

从下往上扔叶子,在最下面的分叉之前,每条链独立。最多做 次。

I. ADD, DIV, MAX

segment tree beats

J. Simple APSP Problem

两个相邻整行都没有障碍,则一定有上边点数乘下面点数的贡献,然后缩起来。剩下 个点,bfs。

K. Forest Task

从小往大贪,每个连通块有度数限制。

Petrozavodsk Summer 2019. Day 9. MEX Foundation Contest

A. The One Polynomial Man

这种东西没理由能维护。但是若 成立, 也成立。

判掉。若 可行,则累加 的数量。求原根,转为离散对数,差卷积。

B. Alexey the Sage of The Six Paths

最大匹配等于最小点覆盖。

同时钦定

Petrozavodsk Summer 2020. Day 6. Korean Contest

A. Mango

判掉只有一个 \text{\}\text{$}k60i$ 个点时长多少,每层二分一下。

B. Koosaga’s Problem

随机异或哈希。找一棵生成树,非树边和对应的树边异或相同的权值。此时偶环异或和为 ,奇环要删一个。

D. Non-Decreasing Subarray Game

后手要最大化,会选 中最大的。在 中一个前缀选 ,后缀选 ,先手选交界左右最小化。可以二分出来。

E. Observer Game

判掉直接赢。如果图中存在两个不同的 ,那会交替填完 个格子。

F. Rhythm Game

满足四边形不等式。

注意应当是 有 个没选,选到 ,对 有决策单调性。

其他的几种都不对,感觉纯乱猜。

G. Solo Tree Game

等价于 个石子。后退的话对方可以跟进。

K. Determinant

特征多项式板子。

Petrozavodsk Summer 2021. Day 4. Shanghai ICPC Camp 2021 Onsite Day 1 by PKU

A. Counting Pairs

卷一下 对,再特判有边的 对。

B. Cactus

能删就删,最后剩下一些全是偶度数的仙人掌,此时不存在只有两个点的点双,使用操作二。

建圆方树,对于一个环,保留连向父亲的一对点不动,其余绕环黑白染色,删光黑点,能删掉除了这对点以外的整个环。从叶子开始删即可,最后一定能删光。

C. Permute

这不是 4th ucup stage 2 D 吗!要是早几周 vp 也不至于场上破防那么久了。

注意到 的循环节为

感受一下,随机排列 的概率均等,就随便划分成 段,再随便给一个顺序即可。

但是要特判掉有一个位置是 ,一个位置极大的情况,此时不一定随的出来。其余情况基本都有解。

E. Elephants

树形关系,随便调整。

F. Interval Shuffle

维护 。操作形如:求出区间 ,将 ,其余赋值为

beats 即可。

I. Directed Acyclic Graph

赛时:

在瓶颈循环处应当把数组的值缓存到局部变量!

对询问分块。ull 压操作 会不会影响到 ,拓扑排序。

当计算每个点在这一块收到的贡献时,先找最后一位赋值操作,与一下找到赋值操作后的所有取 min 操作。给取 min 重编号再压,直接位运算找最大的。

Petrozavodsk Winter 2022. Day 6. ICPC Camp Day 1

A. Soccer Match

直接随机染色,直到异色边数量 。此时不断扔掉 的点就能得到合法解。

关于复杂度,不懂。

B. Gachapon

首先 表示前 轮最大为

枚举卡 ,求 种随机方案,合法且随出 的期望。等价于 合法且第 步随出 的概率之和,等价于 合法且第 步随出 的概率乘 。设 表示第一次随出 的,前 轮合法且最大卡 的概率,从一个 转移。

转置一下。

C. Survey

对于一个人 ,如果有 个可选,有 的贡献。

每个权值都有一个贡献。,加入新权值 可以要求不超过

G. Trans

是 FWT 求的东西。

H. Blind Box

和 第二类斯特林数

第二个大概有一个组合意义解释。对于 个两两不同的球分给 个盒子的分法 ,如果 是前缀最大值,就是 个特殊球,剩下的 个在 中任选对应乘

I. EIP1559

维护

K. Surround the Cat

这种题见过一次就会了,只是还是要写半天挂若干发。

大概是,每两个 ban 一个。当猫跑到离边界差 或者一些离边界差 的危险位置的时候,才开始 ban 没 ban 的那个。

Petrozavodsk Winter 2023. Day 7: Gennady Korotkevich Contest 7

A. Classical A+B Problem

不妨 ,则 至少有 的位数减 位,共 种。python。

B. Classical Counting Problem

降序。设 为最小的 为最大的 ,要求 。固定 后要 合法,设 表示要 合法 最少/最多能加几次,要求 。以 为例, 都等于 ,对于 ,若 ,否则

计数时容斥为 减去 只与 有关, 只与 有关,分别固定左右端点 dp。复杂度

C. Classical Data Structure Problem

被击杀了。

不允许动态开点线段树,那就动态开点平衡树呗。

不知道为什么直接维护分裂区间,树高爆炸了。

改为维护差分数组

D. Classical DP Problem

最少车 为最大的可以放入图中的正方形大小,也即按 降序后 的位置。

要算前 行每行都有车且前 列每列都有车,加上转置 后,再容斥掉 种填法。设 表示填了 行,前 列填了 个。

E. Classical FFT Problem

加速 dp。容斥 列没选,其余列任意,要求 的值。分治 fft 求出系数后多点求值。

H. Classical Maximization Problem

连边后生成树上从下往上匹配,最多剩一条。

I. Classical Minimization Problem

没写。

设一条线上最多有 个点。若 ,则 ,否则 ?

构造就是维护 X 和 Y 两维最多点的线。

J. Classical Scheduling Problem

排序。二分选 个。枚举 个, 个,优先队列维护。

K. Classical Summation Problem

对于 奇数,答案

对于 偶数,答案要减去 的期望除以 。在 处统计左右各 的方案数。