CF1956C.Nene's Magical Matrix
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
魔法少女 Nene 有一个 n×n 的矩阵 a,初始时所有元素均为零。矩阵 a 的第 i 行第 j 列的元素记作 ai,j。
她可以对这个矩阵进行以下两种操作:
- 类型 1 操作:选择一个 1 到 n 之间的整数 i,以及一个 1 到 n 的排列 p1,p2,…,pn。同时将 ai,j:=pj,对所有 1≤j≤n。
- 类型 2 操作:选择一个 1 到 n 之间的整数 i,以及一个 1 到 n 的排列 p1,p2,…,pn。同时将 aj,i:=pj,对所有 1≤j≤n。
Nene 想要最大化矩阵中所有数字的和 i=1∑nj=1∑nai,j。她希望你帮她找到一种操作方案,使得这个和最大。由于她不想操作次数太多,你需要给出一个不超过 2n 次操作的方案。
长度为 n 的排列是指包含 1 到 n 的 n 个互不相同整数的数组,顺序任意。例如,[2,3,1,5,4] 是一个排列,但 [1,2,2] 不是(2 出现了两次),[1,3,4] 也不是(n=3 但出现了 4)。
输入格式
每组测试数据包含多组测试用例。第一行包含一个整数 t(1≤t≤500),表示测试用例的数量。
每组测试用例的唯一一行包含一个整数 n(1≤n≤500),表示矩阵 a 的大小。
保证所有测试用例中 n2 的和不超过 5⋅105。
输出格式
对于每组测试用例,第一行输出两个整数 s 和 m(0≤m≤2n),分别表示矩阵中数字的最大和,以及你方案中的操作次数。
接下来的 m 行,每行描述一次操作,格式如下:
- 一个整数 c(c∈{1,2}),表示操作类型;
- 一个整数 i(1≤i≤n),表示操作作用的行或列编号;
- 一个排列 p1,p2,…,pn,表示本次操作使用的排列。
注意,你不需要最小化操作次数,只需保证操作次数不超过 2n。可以证明,最大可能的和总能在不超过 2n 次操作内实现。
输入输出样例
输入#1
2 1 2
输出#1
1 1 1 1 1 7 3 1 1 1 2 1 2 1 2 2 1 1 2
说明/提示
在第一个测试用例中,最大和 s=1,可以通过 1 次操作 a1,1:=1 实现。
在第二个测试用例中,最大和 s=7,可以通过如下 3 次操作实现:

可以证明,无法使矩阵中数字的和超过 7。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?