QOJ.ac

QOJ

Limite de temps : 1.0 s Limite de mémoire : 256 MB Points totaux : 100 Hackable ✓

#9931. 海棠与赛马娘

Statistiques

在本题中,你需要模拟游戏《赛马娘 Pretty Derby》(Uma Musume Pretty Derby)中训练属性的简化计算过程。

请注意,本题中的规则与原游戏不同。

具体来说,你将获得一名赛马娘和 6 张支援卡的信息,以及若干次训练,你需要输出赛马娘各项属性的值。

所有赛马娘都有 6 种能力:速度(speed)、耐力(sta)、力量(power)、根性(guts)、智力(wis)和技能点(skill)。

一名赛马娘有 10 个属性,即前 5 种能力的初始值 $speed_0, sta_0, power_0, guts_0, wis_0$ 以及它们的训练加成 $speed_\times, sta_\times, power_\times, guts_\times, wis_\times$。

一张支援卡有 13 个属性,包括友情加成(friend)、心情效果提升(drive+)、训练效果提升(train)、前 5 种能力的初始值加成 $speed_0, sta_0, power_0, guts_0, wis_0$ 以及前 5 种能力的训练加成 $speed_+, sta_+, power_+, guts_+, wis_+$。

在单局游戏中,你将选择一名赛马娘和 6 张支援卡。然后,你将让你的赛马娘进行多次训练。

每次训练包含 6 个属性,包括合宿状态(summer)、超重状态(weight)、当前心情(drive)、训练类型(type)、训练等级(lv)以及当前参与的支援卡集合(包括每张支援卡是否处于友情训练状态)$S$。$lv$ 不会直接给出,其计算方法如下:

  • 在合宿期间,$lv$ 固定为 5。
  • 在合宿之外,$lv$ 初始为 1。
  • 在合宿之外完成 4 次同类型的训练后,该特定类型训练的 $lv$ 会增加 1,但最高不超过 5。

在下文中,$\sum_{all}$ 代表所有携带的支援卡,$\sum_{present}$ 代表当前训练中出现的所有支援卡,$\prod_{friends}$ 代表当前训练中出现且处于友情训练状态的所有支援卡。

赛马娘的初始技能点为 120,其余能力的初始值为 $\min(1200, X_0 + \sum_{all} X_0)$,其中 $X$ 代表 6 种能力类型之一。

训练后赛马娘属性的增加量可以根据以下公式计算,我们将对每一项进行详细说明:

$$\Delta X = \lfloor (base_{lv,type,X} + \sum_{present} X_+) \cdot (\prod_{friends}(1 + 0.01 \cdot friend)) \cdot (1 + 0.01 \cdot \sum_{present} train) \cdot (1 + coef_{drive} \cdot (1 + 0.01 \cdot \sum_{present} drive_+)) \cdot (1 + 0.01 \cdot X_\times) \cdot (1 + \sum_{present} 0.05) \rfloor$$

  • 基础训练值 $(base_{lv,type,X} + \sum_{present} X_+)$ $base_{lv,type,X}$ 数组将在附录中提供。具体来说,这代表了在每个等级下,每种训练类型对应的每种能力的增加基础值。 $\sum_{present} X_+$ 代表当前所有参与训练的支援卡的属性加成之和,$skill_+$ 始终等于 0。

  • 友情加成 $(\prod_{friends}(1 + 0.01 \cdot friend))$ 对于每张处于友情训练状态的支援卡,我们将 1 加上其友情加成,然后将它们全部相乘。

  • 训练效果提升 $(1 + 0.01 \cdot \sum_{present} train)$ 我们将当前所有参与训练的支援卡的训练加成求和,再加上 1。

  • 心情加成 $(1 + coef_{drive} \cdot (1 + 0.01 \cdot \sum_{present} drive_+))$ 心情范围为 $[0, 4]$,$coef_i$ 分别为 $-0.2, -0.1, 0, 0.1, 0.2$。 对于每张参与训练的支援卡,我们将它们的心情加成求和并加上 1,然后乘以心情系数。

  • 赛马娘成长率 $(1 + 0.01 \cdot X_\times)$ 此参数仅与赛马娘的属性有关,$skill_\times$ 始终等于 0。

  • 参与训练的支援卡数量 $(1 + \sum_{present} 0.05)$ 每张参与训练的支援卡提供 0.05 的加成。

  • 其他规则 特别地,如果 $weight = 1$,则 $\Delta speed$ 将被强制变为 0,即速度无法提升。 训练后,如果前 5 种能力超过 1200,我们将取 1200 和当前值的最小值,注意此规则不适用于技能点。 你需要在每次训练后打印赛马娘的 6 种能力值。

输入格式

第一行包含 10 个整数 $speed_0, sta_0, power_0, guts_0, wis_0, speed_\times, sta_\times, power_\times, guts_\times, wis_\times$ ($50 \le speed_0, sta_0, power_0, guts_0, wis_0 \le 200, 0 \le speed_\times, sta_\times, power_\times, guts_\times, wis_\times \le 30$),代表赛马娘。

接下来的 6 行,每行包含 13 个整数 $friend, drive_+, train, speed_0, sta_0, power_0, guts_0, wis_0, speed_+, sta_+, power_+, guts_+, wis_+$ ($0 \le friend, drive_+, train, speed_0, sta_0, power_0, guts_0, wis_0, speed_+, sta_+, power_+, guts_+, wis_+ \le 30$),代表一张支援卡。

下一行包含一个整数 $n$ ($1 \le n \le 72$),即训练次数。

接下来的 $n$ 行,每行以 5 个整数 $summer, weight, drive, type, |S|$ ($0 \le summer, weight \le 1, 0 \le drive, type \le 4, 0 \le |S| \le 5$) 开头,代表一次训练。随后跟随 $|S|$ 对整数 $x_i, y_i$ ($1 \le x \le 6, 0 \le y \le 1$),代表第 $x_i$ 张支援卡参与了此次训练,$y=1$ 表示其处于友情训练状态。

保证在每次训练中,$x_i$ 两两不同。

输出格式

对于每个测试用例,打印一行,包含 6 个整数,即赛马娘的能力值。

样例

输入 1

71 117 70 102 90 0 10 0 20 0
25 30 15 0 0 0 0 0 0 1 0 0 0
30 30 15 0 0 0 0 30 0 0 0 0 1
25 0 15 0 0 0 0 0 0 0 0 0 2
30 30 10 0 0 20 0 0 0 0 1 0 0
30 30 0 0 0 0 20 0 1 0 1 0 0
30 0 10 0 0 0 0 0 0 0 0 1 0
9
0 1 0 0 1 5 0
0 0 1 0 4 1 1 2 0 3 0 4 0
0 1 2 0 3 1 0 3 0 6 0
0 0 3 0 5 1 1 2 1 3 1 4 1 5 1
0 1 4 0 3 2 1 4 0 6 1
1 0 3 1 0
1 1 4 2 1 3 1
1 0 3 3 3 4 1 5 0 6 1
1 1 4 4 1 4 0

输出 1

71 117 94 122 120 121
89 119 105 122 125 124
89 120 113 123 128 127
178 128 169 123 152 143
178 128 189 127 155 149
178 143 189 132 155 151
178 156 210 132 158 154
194 156 228 174 158 159
194 156 229 174 176 164

说明

以下是 $base$ 表:

Table $base_1$:

type/X speed sta power guts wis skill
0 10 0 5 0 0 2
1 0 9 0 4 0 2
2 0 5 8 0 0 2
3 4 0 4 8 0 2
4 2 0 0 0 9 4

Table $base_2$:

type/X speed sta power guts wis skill
0 11 0 5 0 0 2
1 0 10 0 4 0 2
2 0 5 9 0 0 2
3 4 0 4 9 0 2
4 2 0 0 0 10 4

Table $base_3$:

type/X speed sta power guts wis skill
0 12 0 5 0 0 2
1 0 11 0 4 0 2
2 0 6 10 0 0 2
3 4 0 4 10 0 2
4 3 0 0 0 11 4

Table $base_4$:

type/X speed sta power guts wis skill
0 13 0 5 0 0 2
1 0 12 0 4 0 2
2 0 6 11 0 0 2
3 4 0 4 11 0 2
4 3 0 0 0 12 4

Table $base_5$:

type/X speed sta power guts wis skill
0 14 0 5 0 0 2
1 0 13 0 4 0 2
2 0 7 12 0 0 2
3 5 0 5 12 0 2
4 4 0 0 0 13 4

作者是在卸载游戏后出的这道题。

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.