QOJ.ac

QOJ

时间限制: 8 s 内存限制: 128 MB 总分: 100

#4443. 战斗与升级

统计

你带领一支军队去对抗怪物,在这个世界中,怪物的血量由物理血量 $hp_p$ 和魔法血量 $hp_m$ 组成。

你的军队有 $n$ 名士兵,第 $i$ 名士兵有 $k_i$ 种攻击方式,第 $i$ 名士兵的第 $j$ 种攻击方式会对怪物造成 $p_{ij}$ 点物理伤害和 $m_{ij}$ 点魔法伤害。

军队的总攻击力是每名士兵攻击力的总和,而每名士兵的攻击力是其所有攻击方式的弱归一化线性组合,即线性组合的系数之和小于或等于 1。形式上,如果军队总攻击造成的物理伤害为 $hurt_p$,魔法伤害为 $hurt_m$,则:

$$hurt_p = \sum_{i=1}^{n} \sum_{j=1}^{k_i} c_{ij} * p_{ij}$$ $$hurt_m = \sum_{i=1}^{n} \sum_{j=1}^{k_i} c_{ij} * m_{ij}$$

其中 $c_{ij}$ 是第 $i$ 名士兵分配给第 $j$ 种攻击的权重,满足:$\forall i : \sum_{j=1}^{k_i} c_{ij} \le 1$,且 $\forall c_{ij} \ge 0$。

由于你追求竞技,你想知道是否能在 1 次攻击内击杀怪物。在你的军队与第 $r$ 个怪物战斗后(无论是否能被单次攻击击杀),它都会掉落一种攻击方式,该方式将被第 $s_r$ 名士兵获得。

在远征期间,你将依次遇到 $q$ 个怪物。对于第 $r$ 个怪物,它有五个属性 $hpp_r, hpm_r, p_r, m_r, s_r$,分别表示物理血量、魔法血量、新攻击方式的物理伤害、新攻击方式的魔法伤害,以及在战斗后获得该攻击方式的士兵编号。

要击败怪物,你需要找到一种攻击组合,使得怪物的物理和魔法 HP 恰好为 0。

输入格式

输入包含多个测试用例。 第一行包含一个整数 $T$ ($T = 11$),表示测试用例的数量。

对于每个测试用例: 第一行包含两个正整数 $n, q$ ($1 \le n \le 10^3, 1 \le q \le 10^5$),分别表示士兵数量和怪物总数。 接下来的 $3 * n$ 行描述了 $n$ 名士兵的攻击方式。第 $3 * i - 2$ 到 $3 * i$ 行描述了第 $i$ 名士兵的原始攻击:首先是一个整数 $k_i$ ($1 \le k_i \le 10^5$),表示该士兵的攻击方式数量;接下来 $k_i$ 个非负整数 $p_{ij}$ ($0 \le p_{ij} \le 10^6$),表示第 $i$ 名士兵第 $j$ 种攻击的物理伤害;接下来 $k_i$ 个非负整数 $m_{ij}$ ($0 \le m_{ij} \le 10^6$),表示第 $i$ 名士兵第 $j$ 种攻击的魔法伤害。 接下来的 $q$ 行,每行包含五个整数 $hpp_r, hpm_r, p_r, m_r, s_r$ ($0 \le hpp, hpm \le 10^9, 1 \le s_r \le n, 0 \le p_r, m_r \le 10^6$),表示第 $r$ 个怪物的物理血量、魔法血量、新攻击的物理伤害、新攻击的魔法伤害以及获得该攻击方式的士兵编号。

对于单个测试用例,保证 $\sum_{i=1}^{n} k_i \le 10^5$。

输出格式

对于每个测试用例,输出 $q$ 行,包含 $YES$ 或 $NO$,表示怪物是否能在 1 次攻击内被击败。

样例

样例输入 1

2
2 3
1
1
0
1
1
0
1 1 0 1 1
1 1 0 1 2
0 2 1 1 1
2 2
3
13 11 4
11 0 9
3
4 16 4
4 16 11
20 26 15 19 2
20 26 1 1 1

样例输出 1

NO
YES
YES
NO
YES

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.