CF2138E2.Determinant Construction (Hard Version)

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

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

题目描述

这是该问题的困难版本。不同之处在于,本版本中 MM 的边长约束更小,tt 的约束更大。只有在你解决了所有版本的问题后才可以进行 hack。

给定一个非负整数 xx。你的任务是构造一个满足以下所有条件的方阵 MM:

  • MM 的边长不超过 5050。
  • MM 的每个元素都是 −1-1、00 或 11。
  • MM 的行列式等于 xx。
  • MM 的每一行至多有 33 个非零元素,每一列至多有 33 个非零元素。

可以证明,总是存在满足要求的矩阵。

输入格式

每组测试包含多个测试用例。第一行包含测试用例数 tt,其中 1≤t≤5001 \leq t \leq 500。接下来每个测试用例占一行,每行包含一个整数 xx(0≤x≤1070 \leq x \leq 10^7),即所需的行列式目标值。

输出格式

对于每个测试用例,输出一个整数 nn(1≤n≤501 \leq n \leq 50),表示所构造方阵 MM 的边长。

接下来输出 nn 行,每行 nn 个整数 Mi,1,Mi,2,…,Mi,nM_{i, 1}, M_{i, 2}, \ldots, M_{i, n},其中 Mi,j∈{−1,0,1}M_{i, j} \in \{-1, 0, 1\},表示矩阵 MM 的元素。

如果有多组满足条件的矩阵 MM,可以输出任意一种。

输入输出样例

  • 输入#1

    3
    1
    2
    4

    输出#1

    1
    1
    2
    1 -1 
    1 1 
    5
    1 -1 0 0 0 
    1 1 1 0 0 
    0 1 1 -1 0 
    0 0 1 1 -1 
    0 0 0 1 1

说明/提示

注意在第三个测试用例中,以下解法:

(11−11−1−1−111−10−11−1−1−1)\begin{pmatrix} 1 & 1 & -1 & 1 \\ -1 & -1 & -1 & 1 \\ 1 & -1 & 0 & -1 \\ 1 & -1 & -1 & -1 \end{pmatrix}

不合法,因为矩阵第一行有 44 个非零元素。

由 ChatGPT 5 翻译

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

首页