QOJ.ac

QOJ

حد الوقت: 4 s حد الذاكرة: 1024 MB مجموع النقاط: 100

#7277. 摧毁 天空 评分服务器

الإحصائيات

尽管石油短缺,开幕式还是取得了巨大的成功。现在,组委会正期待着第一天的比赛。但这是怎么回事?技术委员会主席注意到了一些可疑的网络活动——显然有人计划攻击评分服务器!

评分服务器拥有特定的计算能力 $c_G$,神秘的黑客试图将其降低到(或低于)0。但服务器也受到 $f_G$ 个防火墙的保护,每个防火墙都会将攻击的影响减少一个固定量 $S$。在每个时间点,黑客现在可以决定: 拆除其中一个防火墙,永久减少 $f_G$ 1 个(最低减至 0),或者 使用他们自己的全部计算能力 $c_H$ 攻击服务器,永久减少 $c_G$ $\max\{c_H - f_G \cdot S, 0\}$。

然而,主席可以进行反击,要么拆除黑客的一个防火墙 $f_H$,要么利用评分服务器的计算能力攻击黑客,这同样会减少 $c_H$ $\max\{c_G - f_H \cdot S, 0\}$。主席和黑客轮流行动,黑客先手。

在黑客开始攻击之前,组委会不知道黑客拥有多少计算能力和多少防火墙。同时,由于组委会可能仍能升级服务器,其计算能力和防火墙数量也尚不清楚。为了规划防御,组委会需要一个程序,针对 $Q$ 个不同的场景 $(c_H, f_H, c_G, f_G)$,判断即使在主席做出最优决策的情况下,黑客是否仍能攻破评分服务器。

输入格式

输入的第一行包含整数 $S$ 和 $Q$。接下来有 $Q$ 行,每一行描述上述的一个场景,包含四个整数 $c_H, f_H, c_G, f_G$:分别是神秘黑客的计算能力和防火墙数量,以及评分服务器的计算能力和防火墙数量。

输出格式

你的程序应输出 $Q$ 行,每一行包含一个字符串:如果黑客在相应场景中能够将评分服务器的计算能力降低到 0 或以下(无论主席如何决策),则输出 YES,否则输出 NO。

数据范围

我们始终有 $1 \le S \le 30\,000$,$1 \le c_H, c_G \le 10^{12}$,$0 \le f_H, f_G \le 10^{12}$,且 $1 \le Q \le 250\,000$。

  • 子任务 1(5 分):$S, c_H, f_H, c_G, f_G \le 75$
  • 子任务 2(5 分):$S, c_H, f_H, c_G, f_G \le 300$
  • 子任务 3(10 分):$S = 1$
  • 子任务 4(25 分):$S, c_H, f_H, c_G, f_G \le 2\,000$
  • 子任务 5(20 分):$S \le 400$
  • 子任务 6(20 分):$c_G, c_H \le 125$
  • 子任务 7(15 分):无额外限制。

样例

样例输入 1

17 2
42 1 33 1
42 1 33 7

样例输出 1

YES
NO

样例输入 2

1 1
999999999999 999999999999 999999999999 999999999999

样例输出 2

YES

样例输入 3

2 1
1000000000000 0 1 1000000000000

样例输出 3

NO

说明

考虑第一个样例中的第一个场景: 起初,黑客可以攻击评分服务器,将 $c_G$ 减少 $42 - 1 \cdot 17 = 25$,变为 8。 之后,主席无法通过攻击来减少黑客的计算能力,因此他唯一明智的做法是拆除黑客唯一的防火墙。 * 然而,黑客随后可以通过另一次攻击将评分服务器的计算能力降低到 $8 - 25 = -17 \le 0$,从而攻破服务器,毁掉第一天的比赛。

在第二个场景中: 起初,黑客唯一能做的就是拆除一个防火墙。 之后,主席可以攻击黑客,将其计算能力 $c_H$ 降低到 26。 * 在接下来的两轮中,黑客再次只能拆除一个防火墙,而主席每次都可以进行攻击,从而将 $c_H$ 降低到 0 以下,成功抵御了黑客的攻击。

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.