QOJ.ac

QOJ

Limite de temps : 10 s - 20 s Limite de mémoire : 1024 MB Points totaux : 12

#5976. 公平之地

Statistiques

Fairland 的法律对公司组织架构和员工薪酬有着严格的规定:

  1. 每家公司必须有且仅有一名 CEO,且该 CEO 没有上级。
  2. 除 CEO 外,每名员工必须有且仅有一名上级。(这意味着展示公司所有员工的组织架构图是一棵树,且不存在环。)
  3. 只要员工还在公司工作,其上级就不得变更。这意味着如果一名经理离职,那么所有向该经理汇报的员工也必须离职。
  4. CEO 不得离职。
  5. 每名员工都会获得一份薪水——每年一定数量的 Fairland 元。员工的薪水不得变更。
  6. 不同员工的薪水可能不同,且员工的薪水与其在组织架构图中的位置不一定相关。

Fairland 政府刚刚通过了一条额外法律:

  1. 公司内最高薪水与最低薪水之间的差额最多为 D Fairland 元。

Marie 是 Fairland General Stuff Corporation 的 CEO,她必须确保公司遵守新法律。这可能需要裁掉一些员工。她拥有公司员工名单、他们的上级以及他们的薪水。请问她最多能保留多少名员工(包括她自己)?

输入格式

输入的第一行包含测试用例的数量 T。接下来是 T 个测试用例。每个用例的第一行包含两个空格分隔的整数 N(员工数量)和 D(允许的最大薪水差)。接下来的一行包含四个空格分隔的整数(S0, As, Cs, Rs),再下一行包含另外四个空格分隔的整数(M0, Am, CmRm)。这最后八个整数定义了以下序列:

  • Si+1 = (Si * As + Cs) mod Rs
  • Mi+1 = (Mi * Am + Cm) mod Rm

Marie 的员工 ID 为 0,所有其他员工的 ID 从 1 到 N - 1(包含)。员工 i 的薪水为 Si。对于除 Marie 以外的每名员工 i,其上级为 Mi mod i。(注意,这意味着 M0 不影响 Marie 的上级——她没有上级!)

输出格式

对于每个测试用例,输出一行 "Case #x: y",其中 x 是测试用例编号(从 1 开始),y 是 Marie 在遵守法律 1-7 的前提下,公司能保留的最大员工人数(包括她自己)。

数据范围

内存限制:1 GB。

1 ≤ T ≤ 100。

0 ≤ S0 < Rs

0 ≤ M0 < Rm

0 ≤ As, Am ≤ 1000。

0 ≤ Cs, Cm ≤ 109

小数据集

时间限制:10 秒。

1 ≤ N ≤ 1000。

1 ≤ D ≤ 1000。

1 ≤ Rs, Rm ≤ 1000。

大数据集

时间限制:20 秒。

1 ≤ N ≤ 106

1 ≤ D ≤ 106

1 ≤ Rs, Rm ≤ 106

样例

输入 1

3
1 395
18 246 615815 60
73 228 14618 195
6 5
10 1 3 17
5 2 7 19
10 13
28 931 601463 36
231 539 556432 258

输出 1

Case #1: 1
Case #2: 3
Case #3: 5

说明

在 Case #1 中,公司只有一名 CEO,没有其他员工,这不违反任何法律,因此无需进行任何更改。

以下是 Case #2 的组织架构图:

最优策略是保留员工 0、1 和 5(他们的薪水分别为 10、13 和 8)。例如,无法保留员工 2,因为她的薪水与员工 0 的薪水 10 之间的差值超过了 5;由于员工 0 不能被裁掉,员工 2 必须被裁掉(连同所有向她汇报的员工一起)。

如果你想核对员工 1 到 5 的序列,它们是:

S: 13, 16, 2, 5, 8

M: 17, 3, 13, 14, 16

上级编号:17 % 1 = 0, 3 % 2 = 1, 13 % 3 = 1, 14 % 4 = 2, 16 % 5 = 1

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.