T1:铃仙的红色之瞳(eyes)
为了方便你的预测,铃仙对该符卡进行了改造。
敌方非常强大,可以看作有无限的体力。通过该符卡,铃仙可以释放出子弹,敌方触碰到子弹就会损失一格体力。注意,每次敌方损失体力之后,其位置不会改变。
当敌方和铃仙 x 坐标相同上时,每秒铃仙损失一点体力 (敌方的攻击比较特殊,可以对前后都进行攻击)。注意,这里的秒指的是时间间隔,即第 A 秒时候敌方开始与铃仙处于一条直线上,第 B 秒时候敌方离开这条直线,那么铃仙受到的伤害是(B-A)点。特殊地,如果刚开始铃仙就和敌方在一条直线上,则第 0 秒~ 第 1 秒也受到一点伤害。若最后铃仙和敌方在 x 坐标相同的位置或者敌方处于有子弹的位置上时,它们只会在第 Q-1 秒到第 Q 秒时受到伤害,并不会在第 Q 秒到第 Q+1 秒受到伤害。
地图是一个 nm 的矩形,分别对应的 x 坐标为[1,n],y 坐标为[1,m],给定敌方的初始位置和铃仙的位置(铃仙不会移动),当铃仙发出的子弹超过边界时子弹消失,当敌方越过边界时敌方自动回到初始位置。
现在有 Q 秒,每秒一次操作,可能是铃仙的操作也可能是敌方的操作,可能存在的操作如下:
Ins x y 铃仙在(x,y)处召唤了一颗子弹(如果原先就有子弹则该操作无效)
Del x y 铃仙收回法力,让(x,y)处的子弹消失(如果原先没有子弹则该操作无效)
MA U 铃仙将所有子弹上移一格
MA D 铃仙将所有子弹下移一格
MA L 铃仙将所有子弹左移一格
MA R 铃仙将所有子弹右移一格
MB U 敌方上移一格
MB D 敌方下移一格
MB L 敌方左移一格
MB R 敌方右移一格
现在要你计算 Q 秒后敌方损失的体力和铃仙损失的体力。
(注:左移指的是横坐标-1,下移指的是纵坐标-1)*
大力模拟即可
数组没有清零的悲伤经历
T2:永琳的竹林迷径(path)
竹林可以看作是一个 n 个点的树,每个边有一个边长 wi,其中有 k 个关键点,永琳需要破坏这些关键点才能走出竹林迷径。
然而永琳打算将这 k 个点编号记录下来,然后随机排列,按这个随机的顺序走过 k 个点,但是两点之间她只走最短路线。初始时永琳会施展一次魔法,将自己传送到选定的 k 个点中随机后的第一个点。
现在永琳想知道,她走过路程的期望是多少,答案对 998244353 取模。
注意,如果对期望不理解,题目最后有详细解释,请自行阅读。
考虑一条边对答案的贡献
自然是这条边两边分别有的那
k
k
k 个点的个数的乘积
但是要经过这条边,必须保证一边的一个点必须在另一边的一个点的前面或者后面,所以要
×
2
k
\times \frac{2}{k}
×k2
即
a
n
s
=
∑
i
=
1
m
e
[
i
]
.
w
×
2
k
ans=\sum_{i=1}^{m}e[i].w\times\frac{2}{k}
ans=∑i=1me[i].w×k2
T3:辉夜的夜空明珠(moon)
整个回廊可以看作一个 n 个点 m 条边的无向图,每条边走动花费的时间为 1。辉夜、永琳、铃仙、因幡帝等 k 个人或兔子可以通过传送阵分别进入这个图上的 k 个特殊的点,然后去寻找闯入者。但是在寻找闯入者之前,他们要聚集到一个点,以增强战斗力。注意,可以先到的人停下不走等后来的人。
闯入者不知道回廊的规则,因此被困住,对辉夜等 k 个人的行动没有影响。而辉夜等 k 个人必须按照回廊的规则走动。
回廊的规则如下:每个点有一个颜色,一共 4 种颜色,红、蓝、黄、绿,分别以 R、B、Y、G 表示。走动时必须在第 4p+1 步到 4p+4 步的时候走四种不同的颜色,当然最后一个不完整的周期内也不能走动相同颜色。注意,起点算第 1 步。
现在给定 k 个起点,辉夜想知道他们最短多长时间能够汇合,若不能汇合输出 - 1。
很明显这是一道状压最短路
记一个状态
f
f
f,
f
f
f 的第
i
i
i 位表示这个第
i
i
i 种颜色是否走过,当
f
f
f 的状态满了即走了一个周期,清零即可
大力跑
b
f
s
bfs
bfs 就可以了 (因为每条边的代价为 1,所以队列满足单调递增,相当于跑 Dij)