24705-11 重复拉丁矩阵问题

2470   5-11 重复拉丁矩阵问题

题目描述

现有k 种不同价值的宝石,每种宝石都有足够多颗。欲将这些宝石排列成一个m 行n列的矩阵,m≤n,使矩阵中每一行和每一列的同一种宝石数都不超过规定的数量。另外还规定,宝石阵列的第1 行从左到右和第1 列从上到下的宝石按宝石的价值最小字典序从小到大排列。试设计一个算法,对于给定的k,m和n以及每种宝石的规定数量,计算出有多少种不同的宝石排列方案。

输入格式:

输入数据。第1 行有3 个正整数m,n 和k,0<m≤n<9。第2 行有k 个数,第j 个数表示第j 种宝石在矩阵的每行和每列出现的最多次数。这k 个数按照宝石的价值从小到大排列。设这k个数为1<=  v1<=v2<=……<= vk,则 v1+v2+……+ vk=n。

输出格式:

将计算出的宝石排列方案数输出

输入样例 复制
4 7 3
2 2 3
输出样例 复制
84309

说明

0
0
通过提交
时空限制1000ms/128mb
题目来源
评测方式在线评测
题目类型
难        度