#1648. 置棋问题
置棋问题
题目描述
在的主格中任意指定个格子构成一个棋盘,在任一个构成的棋盘上放置个棋子,要求任意两个棋子不得位于同一行或同一列上,要求输出满足条件的所有方案。(注意棋盘是稀疏的,即)
1、对给定棋盘,求出该棋盘可放置的最多的棋子数;
2、记为该盘上放置个棋子时的方案总数,其中经旋转和镜面反射而得的方案记为不同的方案,对于每一个,求出相应的 。
3、程序应能够连续处理多个棋盘,对每一个棋盘,输出和,,只需输出数字,不必输出具体的方案。
输入格式
第一行是两个数字,代表第一个棋盘的和,以下为一个仅由和组成的矩阵,某一个位置为表示相应的格子在这个棋盘,为表示相应的格子不在棋盘上。
输出格式
第一行为棋盘可放置的最多的棋子数;第二行分别列出从放个棋子数到放个棋子的方案总数。
样例
输入样例
5 5
0 1 1 1 0
0 1 0 0 0
1 1 1 0 0
0 0 1 0 0
0 0 1 1 0
输出样例
The maxnumber=4
1:10
2:28
3:24
4:5