5-11 重复拉丁矩阵问题
问题描述
现有 k 种不同价值的宝石,每种宝石都有足够多颗。欲将这些宝石排列成一个 m 行 n列的矩阵,m≤n,使矩阵中每一行和每一列的同一种宝石数都不超过规定的数量。另外还 规定,宝石阵列的第 1 行从左到右和第 1 列从上到下的宝石按宝石的价值最小字典序从小到 大排列。试设计一个算法,对于给定的 k,m 和 n 以及每种宝石的规定数量,计算出有多少 种不同的宝石排列方案。
对于给定的 m,n 和 k,以及每种宝石的规定数量,计算出不同的宝石排列方案数。
数据输入:
第 1 行有 3 个正整数 m,n 和 k,0< m≤ n< 9。第 2 行有k 个数,第 j 个数表示第 j 种宝石在矩阵的每行和每列出现的最多次数。这 k 个数按照宝石 的价值从小到大排列。设这k个数为 1≤v1≤v2≤.