A5673 | 「THUPC 2023」Freshman Dream
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
小 J 正在学习矩阵乘法。
一旁的小 L 告诉他:只要将两个矩阵对应的位置乘起来,那就能得到两个矩阵的乘法了。
这当然是不对的,但是小 L 要继续骗小 J。为此,她需要在自己的 OJ 上放一道矩阵乘法题,使得这样的矩阵乘法也能得到正确的答案。
因为小 L 的 OJ 跑的很慢并且空间限制也很小,所以这道矩阵乘法题的答案都是 $\bmod 2$ 意义下的。
现在小 L 开始造数据。她先随机生成了一个 $n\times n$ 的矩阵 $A$,具体地,每一个元素以 $\frac 12$ 的概率为 $1$,剩下的概率为 $0$,且这些事件相互独立。现在,她还要设计另一个 $n\times n$ 的 $01$ 矩阵 $B$,使得 $AB_{ij}\equiv A_{ij}B_{ij}\pmod 2$。
小 L 试图随机生成矩阵,但是找不出什么满足要求的矩阵;她试图构造几个矩阵,发现只会构造全 $0$ 矩阵,这太明显了。现在,她将生成数据的重任交给了你,你需要给出一个满足要求的 $B$,同时为了不让大家看出数据有猫腻,她还额外要求了 $B$ 里面恰好有 $k$ 个 $1$。
一旁的小 L 告诉他:只要将两个矩阵对应的位置乘起来,那就能得到两个矩阵的乘法了。
这当然是不对的,但是小 L 要继续骗小 J。为此,她需要在自己的 OJ 上放一道矩阵乘法题,使得这样的矩阵乘法也能得到正确的答案。
因为小 L 的 OJ 跑的很慢并且空间限制也很小,所以这道矩阵乘法题的答案都是 $\bmod 2$ 意义下的。
现在小 L 开始造数据。她先随机生成了一个 $n\times n$ 的矩阵 $A$,具体地,每一个元素以 $\frac 12$ 的概率为 $1$,剩下的概率为 $0$,且这些事件相互独立。现在,她还要设计另一个 $n\times n$ 的 $01$ 矩阵 $B$,使得 $AB_{ij}\equiv A_{ij}B_{ij}\pmod 2$。
小 L 试图随机生成矩阵,但是找不出什么满足要求的矩阵;她试图构造几个矩阵,发现只会构造全 $0$ 矩阵,这太明显了。现在,她将生成数据的重任交给了你,你需要给出一个满足要求的 $B$,同时为了不让大家看出数据有猫腻,她还额外要求了 $B$ 里面恰好有 $k$ 个 $1$。
输入格式
输入的第一行包含两个正整数 $n,k$,表示矩阵的大小和题目中的 $k$。
接下来 $n$ 行,每一行 $n$ 个整数 $a_{ij}$ 表示 $A$ 的元素。
接下来 $n$ 行,每一行 $n$ 个整数 $a_{ij}$ 表示 $A$ 的元素。
输出格式
如果没有任何 $B$ 满足要求,输出一行一个整数 $-1$。
否则,先输出一行一个整数 $1$,然后输出 $n$ 行,每行 $n$ 个 $\{0,1\}$ 中的整数来表示 $B$ 矩阵的元素。如果有多个可能的 $B$,输出其中一个即可。
否则,先输出一行一个整数 $1$,然后输出 $n$ 行,每行 $n$ 个 $\{0,1\}$ 中的整数来表示 $B$ 矩阵的元素。如果有多个可能的 $B$,输出其中一个即可。
输入输出样例
输入 #1
3 3 1 0 0 0 1 0 0 0 1
输出 #1
1 1 0 0 0 1 0 0 0 1
对于所有测试数据,$n=100$,$0 \le k \le n^2$,$a_{ij}\in \{0,1\}$,所有 $a_{ij}$ 均为独立均匀随机。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?