Type: Default 1000ms 256MiB

分书问题

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

分书问题是指:已知 nn 个人对 mm 本书的喜好(nmn \le m),现要将 mm 本书分给 nn 个人,每个人只能分到 11 本书,每本书也最多只能分给 11 个人,并且还要求每个人都能分到自己喜欢的书。列出所有满足要求的方案。

本题请你对任意 nnmm 尝试列出全部的解。

输入格式: 输入第一行给出两个正整数 nnmm (nm8)(n \le m \le 8),即分书问题中的人数和书的数量。 随后 nn 行,每行给出 mm 个关系矩阵元素。其中第 ii 行第 jj 个元素为 11 表示第 ii 个人喜欢第 jj 本书,为 00 则表示不喜欢。

输出格式:

按升序列出所有满足要求的方案 每行输出 nn 个数 s1,s2sns_1,s_2 \ldots s_n 其中 sis_i 表示第 ii 个人分到了第 sis_i 本书。

注:方案 (a1,,an)(a_1 , \ldots ,a_n​ ) < (b1,,bn)(b_1​,⋯,b_n) 是指存在 1kn1 \le k \le n ,使得 ai=bi a_i = b_i 对所有 1ik1 \le i \le k 成立,并且有 ak<bka_k \lt b_k

输入样例:

4 5
0 1 0 0 1
1 1 0 1 0
1 0 1 1 0
0 0 0 1 1

输出样例:

2 1 3 4
2 1 3 5
2 1 4 5
2 4 1 5
2 4 3 5
5 1 3 4
5 2 1 4
5 2 3 4

限制与约定

对于 50%50\% 的数据,2nm5 2 \le n \le m \le 5

对于 100%100\% 的数据,2nm8 2 \le n \le m \le 8, 保证每一行至少存在一个 11

  • 时间限制: 1s1 s
  • 空间限制: 256MB256 MB