CF2138E2.Determinant Construction (Hard Version)
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是该问题的困难版本。不同之处在于,本版本中 M 的边长约束更小,t 的约束更大。只有在你解决了所有版本的问题后才可以进行 hack。
给定一个非负整数 x。你的任务是构造一个满足以下所有条件的方阵 M:
- M 的边长不超过 50。
- M 的每个元素都是 −1、0 或 1。
- M 的行列式等于 x。
- M 的每一行至多有 3 个非零元素,每一列至多有 3 个非零元素。
可以证明,总是存在满足要求的矩阵。
输入格式
每组测试包含多个测试用例。第一行包含测试用例数 t,其中 1≤t≤500。接下来每个测试用例占一行,每行包含一个整数 x(0≤x≤107),即所需的行列式目标值。
输出格式
对于每个测试用例,输出一个整数 n(1≤n≤50),表示所构造方阵 M 的边长。
接下来输出 n 行,每行 n 个整数 Mi,1,Mi,2,…,Mi,n,其中 Mi,j∈{−1,0,1},表示矩阵 M 的元素。
如果有多组满足条件的矩阵 M,可以输出任意一种。
输入输出样例
输入#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
说明/提示
注意在第三个测试用例中,以下解法:
1−1111−1−1−1−1−10−111−1−1
不合法,因为矩阵第一行有 4 个非零元素。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?