题目描述:P4640 [BJWC2008] 王之财宝
《基尔伽美修》是人类历史上第一部英雄史诗,两河流域最杰出的文学作品之一。作品讲述了基尔伽美修一生的传奇故事。在动画Fate/stay night中,基尔伽美修与亚瑟王等传说中的英雄人物一起出现在了现实世界,展开了一场惊天地、泣鬼神的战斗。在记载于12块泥板的史诗中,基尔伽美修与同伴安吉杜一起降伏了森林的守护者——神兽洪芭芭,成为地上最强的王者,同时将世间所有财宝收归手中。王之财宝(Gate of Babylon)成为Fate中金皮卡(基尔伽美修的外号…)炫耀的资本……
一天金皮卡突发奇想:如果从自己无尽的财宝里面,随便抽不超过M件宝具出来砸死敌人的话。一共有多少种搭配方法呢?假设金皮卡一共有N种不同类型的宝具,大部分类型的宝具都有无限多,但其中T种超级神器的数量是有限的。设第种超级神器的数量不超过
件。若相同类型的宝具数量相同,则认为是相同的搭配方案。
金皮卡知道方案数会很大,从小数学成绩就好的他挑选了一个质数P,请你帮他计算一下方案数模P后的余数。注意:一件也不选也是一种方案。
输入格式:
第一行包含4个整数,分别为。之后
行,每行一个整数,代表
;
数据范围:
输出格式:
仅包含一个整数,即方案数模P后的余数。
分析思路(超详细):
总体思想是用隔板法+容斥原理求解,具体步骤如下:
-
1) 计算没有任何限制时的所有可能组合数
在不考核任何限制的情况下,N种宝具中每种宝具都可以选择0~M件,总的方案数相当于求解方程:的非负整数解的个数,(其中a,b,c...分别代表A、B、C...对应宝具的数量)。可以转化为求解