AT_ahc058_a.[AHC058A] Apple Incremental Game

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

共有 N×LN \times L 种类型的机器,由 NN 种 ID 与 LL 种 Level 组成。Level 为 ii,ID 为 jj 的机器称为 jij^i 号机器(0≤i<L, 0≤j<N0 \leq i < L,\ 0 \leq j < N)。

j0j^0 号机器的产能为 AjA_j。jij^i 号机器初始强化费用为 Ci,jC_{i,j}。

你的目标是在 TT 轮结束后,最大化苹果的总数量,具体操作流程如下。

生产计划流程

记 Bi,jB_{i,j} 为 jij^i 号机器的数量,初始时所有 Bi,jB_{i,j} 均为 1。记 Pi,jP_{i,j} 为 jij^i 号机器的强化次数,初始时所有 Pi,jP_{i,j} 均为 0。

计划开始时初始苹果数量为 KK。每一轮请依照以下步骤进行:

  1. 你可以选择以下两种操作之一:
    • 强化 jij^i 号机器:消耗 Ci,j×(Pi,j+1)C_{i,j} \times (P_{i,j} + 1) 个苹果,使 Pi,jP_{i,j} 增加 1。但若操作后苹果数量会小于 0,则不能强化。
    • 什么都不做。
  2. 对于所有 jij^i 号机器,按 Level 0, 1, 2, 3 的顺序,依次执行以下操作:
    • 若是 Level 0 的机器(i=0i=0):
      • 苹果数量增加 Aj×Bi,j×Pi,jA_j \times B_{i,j} \times P_{i,j}。
    • 若是 Level 1 及以上的机器(i≥1i\geq1):
      • Bi−1,jB_{i-1,j} 增加 Bi,j×Pi,jB_{i,j} \times P_{i,j}。

请选择合适的操作策略,在 TT 轮操作后最大化苹果数量。

输入格式

输入以如下格式从标准输入给出。

NN LL TT KK A0A_0 A1A_1 ⋯\cdots AN−1A_{N-1} C0,0C_{0,0} C0,1C_{0,1} ⋯\cdots C0,N−1C_{0,N-1} C1,0C_{1,0} C1,1C_{1,1} ⋯\cdots C1,N−1C_{1,N-1} ⋮\vdots CL−1,0C_{L-1,0} CL−1,1C_{L-1,1} ⋯\cdots CL−1,N−1C_{L-1,N-1}

  • 第 1 行包含 4 个整数 N,L,T,KN, L, T, K:
    • NN 为机器 ID 的种类数,且 N=10N=10。
    • LL 为机器 Level 的种类数,且 L=4L=4。
    • TT 为轮数,且 T=500T=500。
    • KK 为初始苹果数量,且 K=1K=1。
  • 第 2 行包含 NN 个用空格分隔的整数 A0,A1,…,AN−1A_0, A_1, \dots, A_{N-1},代表各 Level 0 号机器的生产能力:
    • AjA_j 表示 j0j^0 号机器的产能,1≤Aj≤1001 \leq A_j \leq 100。
    • AA 单调递增排序(A0≤A1≤⋯≤AN−1A_0 \leq A_1 \leq \cdots \leq A_{N-1})。
  • 接下来的 LL 行,每行含 NN 个用空格分隔的整数 Ci,jC_{i,j}:
    • Ci,jC_{i,j} 表示 jij^i 号机器的初始强化费用,1≤Ci,j≤1.25×10121 \leq C_{i,j} \leq 1.25 \times 10^{12}。

输出格式

请输出恰好 TT 行,每行描述第 tt 轮(0≤t<T0 \leq t < T)的操作,按从第 0 轮至第 T−1T-1 轮顺序排列,格式如下:

  • 若选择强化 jij^i 号机器:

ii jj

  • 若选择什么都不做:
-1

程序输出中可以包含以 # 开头的注释行。

说明/提示

计分规则

记 SS 为 TT 轮结束后剩余苹果数量。你的得分计算方式为 round(105×log⁡2S)\mathrm{round}(10^5 \times \log_2 S)。分数越高越好。

下列情况会被判定为输出错误(WA):

  • 强化操作导致苹果数量小于 00
  • 指定了不存在的机器 Level 或 ID
  • 操作数少于 TT 次

测试数据共有 150150 组,提交得分为所有测试用例得分之和。若输出非法或部分数据超时,则本次提交得分为 00。比赛最终排名以比赛期间最高有效得分排序,相同分数并列,不以提交时间排序。比赛结束后不进行系统测试。

输入数据生成方式

rand_double(L,U)\mathrm{rand\_double}(L, U) 表示在 [L,U][L, U] 上以均匀分布生成实数。

AjA_j 的生成

  • j=0j=0 时:A0=1A_0=1
  • j≠0j\neq0 时:Aj=round(10rand_double(0,2))A_j=\mathrm{round}(10^{\mathrm{rand\_double}(0,2)})
  • 全部生成后将 AA 升序排列

Ci,jC_{i,j} 的生成

  • i=0i=0 且 j=0j=0:C0,0=1C_{0,0}=1
  • 其他情况:Ci,j=round(Aj×500i×10rand_double(0,2))C_{i,j} = \mathrm{round}(A_j \times 500^i \times 10^{\mathrm{rand\_double}(0,2)})

工具(输入生成器与可视化工具)

请注意,在比赛期间禁止分享可视化结果或讨论思路与解法。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页