题目:http://codeforces.com/contest/991/problem/E
题意:有一串数,每个数都出现cnt[i]次 (为解释题意方便,这部分是需要自己计算一下的),对他进行排列组合,要求原数列中的每个数都需要出现>=1次,但不能超过cnt[i]次,且0不能放在开头,(在符合前面要求的前提下新数列长度是任意的),问这样的组合数。
思路:
1.计算每个数字的cnt[i] ;
2.dfs 并用 use[i] 记录每次新数列中该数出现的次数(排列组合的公式中要用到) (use[1] 从1到cnt[i]遍历) ;
3.对于数组中含重复元素的排列组合的种数的计算公式: (解释:分子表示总共有n个数进行全排列;分母中每一小部分表示每个数自己重复的次数进行全排列);