loj#P6886. 「THUPC 2023」Freshman Dream

「THUPC 2023」Freshman Dream

题目描述

小 J 正在学习矩阵乘法。

一旁的小 L 告诉他:只要将两个矩阵对应的位置乘起来,那就能得到两个矩阵的乘法了。

这当然是不对的,但是小 L 要继续骗小 J。为此,她需要在自己的 OJ 上放一道矩阵乘法题,使得这样的矩阵乘法也能得到正确的答案。

因为小 L 的 OJ 跑的很慢并且空间限制也很小,所以这道矩阵乘法题的答案都是 mod2\bmod 2 意义下的。

现在小 L 开始造数据。她先随机生成了一个 n×nn\times n 的矩阵 AA,具体地,每一个元素以 12\frac 12 的概率为 11,剩下的概率为 00,且这些事件相互独立。现在,她还要设计另一个 n×nn\times n0101 矩阵 BB,使得 ABijAijBij(mod2)AB_{ij}\equiv A_{ij}B_{ij}\pmod 2

小 L 试图随机生成矩阵,但是找不出什么满足要求的矩阵;她试图构造几个矩阵,发现只会构造全 00 矩阵,这太明显了。现在,她将生成数据的重任交给了你,你需要给出一个满足要求的 BB,同时为了不让大家看出数据有猫腻,她还额外要求了 BB 里面恰好有 kk11

输入格式

输入的第一行包含两个正整数 n,kn,k,表示矩阵的大小和题目中的 kk

接下来 nn 行,每一行 nn 个整数 aija_{ij} 表示 AA 的元素。

输出格式

如果没有任何 BB 满足要求,输出一行一个整数 1-1

否则,先输出一行一个整数 11,然后输出 nn 行,每行 nn{0,1}\{0,1\} 中的整数来表示 BB 矩阵的元素。如果有多个可能的 BB,输出其中一个即可。

3 3
1 0 0
0 1 0
0 0 1

1
1 0 0
0 1 0
0 0 1

这里的 AA 是单位矩阵,构造的 BB 也是单位矩阵,乘积也为单位矩阵。同时,将对应位置相乘也为单位矩阵,并且 BB 中恰有 k=3k=311,故满足要求。

本样例中 nn 不为 100100,但保证所有测试数据中 nn 均为 100100

数据范围与提示

对于所有测试数据,n=100n=1000kn20 \le k \le n^2aij{0,1}a_{ij}\in \{0,1\},所有 aija_{ij} 均为独立均匀随机。

题目使用协议

来自 THUPC2023(2023年清华大学学生程序设计竞赛暨高校邀请赛)。

以下『本仓库』皆指 THUPC2023 官方仓库(https://github.com/THUSAAC/THUPC2023

  1. 任何单位或个人都可以免费使用或转载本仓库的题目;

  2. 任何单位或个人在使用本仓库题目时,应做到无偿、公开,严禁使用这些题目盈利或给这些题目添加特殊权限;

  3. 如果条件允许,请在使用本仓库题目时同时提供数据、标程、题解等资源的获取方法;否则,请附上本仓库的 github 地址。