Noip 模拟 13 2018/10/31

本文探讨了幻想乡中角色如铃仙、永琳和辉夜的策略战斗,涉及符卡系统、竹林迷径和夜空明珠的挑战。通过模拟、最短路径和状态压缩算法,解析了战斗中的体力消耗、最短路径期望和团队汇合时间。

T1:铃仙的红色之瞳(eyes)
为了方便你的预测,铃仙对该符卡进行了改造。
敌方非常强大,可以看作有无限的体力。通过该符卡,铃仙可以释放出子弹,敌方触碰到子弹就会损失一格体力。注意,每次敌方损失体力之后,其位置不会改变。
当敌方和铃仙 x 坐标相同上时,每秒铃仙损失一点体力 (敌方的攻击比较特殊,可以对前后都进行攻击)。注意,这里的秒指的是时间间隔,即第 A 秒时候敌方开始与铃仙处于一条直线上,第 B 秒时候敌方离开这条直线,那么铃仙受到的伤害是(B-A)点。特殊地,如果刚开始铃仙就和敌方在一条直线上,则第 0 秒~ 第 1 秒也受到一点伤害。若最后铃仙和敌方在 x 坐标相同的位置或者敌方处于有子弹的位置上时,它们只会在第 Q-1 秒到第 Q 秒时受到伤害,并不会在第 Q 秒到第 Q+1 秒受到伤害。
地图是一个 n
m 的矩形,分别对应的 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 kk 个点的个数的乘积
但是要经过这条边,必须保证一边的一个点必须在另一边的一个点的前面或者后面,所以要×2k \times \frac{2}{k}×k2
ans=∑i=1me[i].w×2k 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 fffff 的第i ii 位表示这个第i ii 种颜色是否走过,当f ff 的状态满了即走了一个周期,清零即可
大力跑bfs bfsbfs 就可以了 (因为每条边的代价为 1,所以队列满足单调递增,相当于跑 Dij)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值