2024ICPC南京
A. Hey, Have You Seen My Kangaroo?
给定n*m网格,一些格子有障碍,其他格子空着并存在一只袋鼠。四连通,袋鼠可以移动到无障碍相邻格。
可以按四方向移动,所有袋鼠同时移动,非法则不动。
给定一个移动序列,无限次重复这个序列。
对于 1 <= i <= n * m, 找到最小vi满足最多i个格子有袋鼠。
kangaroo 袋鼠
simultaneously 同时
B. Birthday Gift
给定仅含0,1,2的序列A,通过任意次操作使得A最短。
操作:
- 将2变成0或1。
- 删除相邻2个0。
- 删除相邻2个1。
计算最短A的长度。
C.Topology
给定以1为根的树,保证父亲编号<儿子编号。定义这棵树的拓扑序是一个n的排列p,且满足:
对于1<=i<j<=n,pj不是pi的父亲。
对于所有1<=i<=n,计算pi=i的拓扑序的数量,对998244353取模。
topological 拓扑的
D. Toe-Tac-Tics
n个3*3的board,格子状态:空、o、x。Alices下x,Bob下o。
双方必须保证落子之后,没有三个相同标记在一行、一列或者对角线。
Alice先,轮流操作,无法操作者输。
给定n个board的初始状态,判断谁能赢。
diagonal 对角线
E. Left Shifting 3
给定一个长度为n的字符串(下标从0开始),可以将S左移至多k次。计算子串"nanjing"最多出现的次数。
F. Subwway
n个地铁站,k个有向地铁线。每个地铁线相邻站之间的移动要花相应时间。
换乘:同一个站,从x线换到y线,花费ay*bx时间。
计算从站1,到站2<=s<=n的最短时间,初始可以选择任意一条线上的站1,保证所有站可达。
G. Binary Tree
给定一个n个点的二叉树,使用至多p=[log2(n)]次询问找到一个点s。
每个询问包括u,v两点。交互器输出一个t(0<=t<=2)。
t=0: u比v更靠近s
t=1: u和v到s等距
t=2: v比u更靠近s
交互器是自适应的。
interactor 交互器
adaptive 自适应的
conflict 冲突
H. Border Jump 2
给定一个小写字符串S,进行一些操作直到S为空。
操作:
- 删除第一个字符
- 删除最后一个字符
- 选择S的一个“好的”子串S',令S=S'
S'≠S,S'是S的一个前缀,反转的S'是S的一个后缀。
问最多能进行操作3多少次。
I. Bingo
给定一个长度为n×m的序列a,填入n×m的网格中。
k是bingo数,至少满足以下条件之一:
- 存在至少一行,所有数小于等于k。
- 存在至少一列,所有数小于等于k。
我们只关心一个网格的最小bingo数。
计算所有所有填法的最小bingo数之和对998244353取模。
J. Social Media
对于C,想看到A在B的帖子下的评论,必须同时是A和B的朋友。如果一个用户留下评论在他自己的贴子,所有他的朋友可见。
你想要看到尽量多的评论。有k个用户(不包括你自己)。总共有m条评论,你可能不能全看到因为你只有n个朋友。问在你至多只能再交两个朋友的情况下,最多能看到多少条评论。
post 帖子
K. Strips
有w个单元格排成一行,其中n个是红的,m个是黑的,剩下的w-n-m个是白的。找到一个方法用strip覆盖所有红格,strip长度为k,并满足以下限制:
- 每个红格被一个strip覆盖。
- 没有黑格被一个strip覆盖。
- 没有两个strip覆盖同一个单元格。
- strip的数量尽可能少。
问strip最小数量及构造方案。
strip 条,带
L. P⊕Q=R
给定n,构造排列P,Q(0~n-1)使得序列R也是一个排列,其中ri=pi⊕qi。
constructive 建设性的x,构造的√
construct 构造
M. Ordainer of Inexorable Judgment
最初那维莱特站在(0,0),面对(x0,y0),做一个持续t单位时间的攻击,每单位时间逆时针旋转1 rad,则转一圈需要2Π单位时间。
考虑一条从(0,0)朝向那维莱特面对的方向的射线,攻击范围是距离这条射线至多d的点集。假设目标的形状是个凸包,有共同点在
攻击范围内,每单位时间将会受到1点伤害。
scenario 场景
counter-clockwise 逆时针
clockwise 顺时针