#P17648. [IO 2025 #1] 与 Boss 的战斗

    ID: 20296 远端评测题 2000ms 512MiB 尝试: 0 已通过: 0 显示难度普及+/提高− 上传者: 标签>贪心二分2025Special Judge排序bitset

[IO 2025 #1] 与 Boss 的战斗

题目描述

大黄蜂(Hornet)有 nn 项战斗属性,第 ii 项属性的数值是整数 aia_i。在漫长的冒险中,她遇到了 mm 个 Boss,每个 Boss 也有这 nn 项属性:第 ii 个 Boss 的第 jj 项属性为 bi,jb_{i,j}。

大黄蜂不一定按编号从小到大的顺序与 Boss 战斗,也不一定只与每个 Boss 战斗一次。她有一个长度为 kk 的 Boss 编号数组 cc,用来确定她与哪些 Boss 战斗。数组 cc 中的数可以重复,也不要求 11 到 mm 中的每个编号都出现。

在冒险中,可能发生以下两种事件:

  1. 1 i x:大黄蜂的第 ii 项属性增加 xx,即令 ai←ai+xa_i\gets a_i+x。
  2. 2 j s:大黄蜂与编号为 cjc_j 的 Boss 战斗。如果 ss 为 win,记录表示她获胜;如果 ss 为 loss,记录表示她落败。

大黄蜂能击败编号为 cjc_j 的 Boss,当且仅当她的每项属性都不低于该 Boss 的对应属性,即对任意 ii,都有 ai≥bcj,ia_i\ge b_{c_j,i}。因此,只要 大黄蜂有至少一项属性低于 Boss 的对应属性,她就会落败。

遗憾的是,数组中的数值 cjc_j 已经遗失,但所有事件的记录仍然保留。请判断是否存在一个数组 cc,使所有战斗的实际结果都与记录一致,还是记录中存在错误。同一个下标 jj 在不同事件中出现时,始终代表同一个 cjc_j。

输入格式

第一行包含三个整数 n,m,kn,m,k,分别表示战斗属性数、Boss 数和事件数,满足 1≤n,m,k≤10001\le n,m,k\le1000。数组 cc 的长度也是 kk。

第二行包含 nn 个整数 aia_i,表示 大黄蜂各项属性的初始数值,满足 0≤ai≤5000\le a_i\le500。

接下来 mm 行,每行包含 nn 个整数 bi,jb_{i,j},表示一个 Boss 的各项属性,满足 0≤bi,j≤5000\le b_{i,j}\le500。

接下来 kk 行,按照题目描述中的格式给出事件记录。其中,1≤i≤n1\le i\le n,1≤j≤k1\le j\le k,1≤x≤5001\le x\le500,且 ss 为 win 或 loss。

输出格式

如果存在一个数组 cc,使事件记录正确,输出 Yes;否则输出 No。

注意,不要求 大黄蜂至少与每个 Boss 战斗一次。

3 2 4
0 0 0
1 2 0
0 2 1
1 1 2
1 2 3
2 3 loss
2 2 win
Yes
3 2 5
0 0 0
1 0 2
0 2 1
1 1 2
1 2 3
2 2 win
1 3 3
2 3 loss
No

提示

样例 1 解释

可以选择 c=[∗,1,2,∗]c=[*,1,2,*],其中 ∗* 表示任意 Boss 编号,因为记录中没有关于这些位置的信息。

开始与 Boss 战斗前,大黄蜂的属性为 [2,3,0][2,3,0]。凭借这些属性,她能击败第一个 Boss,但会输给第二个 Boss。

样例 2 解释

不存在符合要求的数组。在最后一次事件前,大黄蜂的属性为 [2,3,3][2,3,3],因此她不会输给任何一个 Boss。