AT_gw2015_i.ピラミッド - 立方体編

通过率:0%

AC君温馨提醒

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

题目描述

伊织酱最近迷上了建造金字塔。

由于已经对用球形石头建造金字塔感到厌烦,她这次选择使用边长为 11 的立方体石头。建造的步骤如下:

  • 在纸上绘制一个 N×NN \times N 的网格。每个格子的边长都是 11。第 ii 行第 jj 列的格子记为 (i,j)(i, j)。
  • 在每个格子上竖直堆叠至少一个石头。格子 (i,j)(i, j) 上堆叠的石头数量为 Hi,jH_{i,j}。
  • 选择一个格子作为中心,记为格子 PP。
  • 移除一些石头(可以不移除),使得剩下的石头能形成以格子 PP 为中心的金字塔。

定义:石头以格子 PP 为中心形成金字塔时,需满足以下条件:

  • 将格子 PP 记作 (Pi,Pj)(Pi, Pj),格子 (i,j)(i, j) 上的石头数记为 Si,jS_{i,j},SPi,PjS_{Pi, Pj} 记为 TT。对于所有的 ii 和 jj,以下条件需要成立:
    • Si,j=max⁡(0,T−max⁡(∣Pi−i∣,∣Pj−j∣))S_{i,j} = \max(0, T - \max(|Pi - i|, |Pj - j|))
    • Si,j≤min⁡(Pi,Pj,N−Pi+1,N−Pj+1)S_{i,j} \le \min(Pi, Pj, N - Pi + 1, N - Pj + 1)

在这种情况下,称格子 PP 上的石头数为金字塔的高度。

你的任务是,对于每个格子 (i,j)(i, j),找出以它为中心所能形成的最大金字塔高度,并计算这些最大高度的总和。

输入格式

输入包含多个测试用例:

  • 第一行为两个整数 NN 和 QQ,分别表示网格的边长和测试用例的数量。(1≤N≤500, 1≤Q≤10)(1 \le N \le 500, \ 1 \le Q \le 10)
  • 第二行为四个整数 X,A,B,CX, A, B, C,用于生成测试用例的随机数。(0≤X<2310 \le X < 2^{31})
  • 接下来的 NN 行,每行包含 NN 个整数,表示每个格子初始堆叠的石头数。其中,第 ii 行的第 jj 个数为 Hi,jH_{i,j},表示格子 (i,j)(i, j) 上堆叠的石头数。(1≤Hi,j≤N)(1 \le H_{i,j} \le N)

输出格式

输出包含 QQ 行,每行对应一个测试用例的答案,即该测试用例所有格子的最大金字塔高度之和。每行末尾应有换行符。

样例解释

对于给定的测试用例,计算每个格子的最大金字塔高度,并将这些最大高度的和输出为该测试用例的结果。例如,第一个测试用例的结果是 3535,第二个是 2727,第三个是 3030。

本翻译由 AI 自动生成

输入输出样例

  • 输入#1

    int N, Q, X, A, B, C;
    int H[500][500];
    int Rand() {
      return X = (A * X + B) % C;
    }
    void Shuffle() {
      for (int i = 0; i 
    
    
    
    
    5 3
    0 7 3 101
    1 1 1 1 1
    1 2 2 2 1
    1 2 3 2 1
    1 2 2 2 1
    1 1 1 1 1

    输出#1

    35
    27
    30

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

首页