多重集组合数(Java)
多重集组合数(Java)
代码如下
package day06;
import java.util.Arrays;
public class 多重集组合数 {
public static void main(String[] args) {
int n = 3;
int m = 3;
int[] a = {1,2,3};
int M = 1000;
int pailie = getPailie(n, m, a, M);
System.out.println(pailie);
}
public static int getPailie(int n,int m ,int[] a,int M){
int[][] dp = new int[n+1][m+1];
for (int i = 0; i <=n; i++) {
dp[i][0] = 1;
}
for (int i = 0; i < n; i++) {
for (int j = 1; j <=m ; j++) {
if(j-1-a[i]>=0){
//在有取余的情况下,要避免减法运算的结果出现负数
dp[i+1][j] = (dp[i+1][j-1]+dp[i][j]-dp[i][j-1-a[i]]+M)%M;
}else{
dp[i+1][j] = (dp[i+1][j-1]+dp[i][j])%M;
}
}
}
for (int i = 0; i < dp.length; i++) {
System.out.println(Arrays.toString(dp[i]));
}
return dp[n][m];
}
}
多重集组合数(Java)相关教程
多重部分和问题(Java)
多重部分和问题(Java) 代码如下 package day05;import java.util.Arrays;public class 多重部分和问题 { public static void main(String[] args) { int n = 3; int[] a = {3,5,8}; int[] m = {3,2,2}; int K = 17; boolean k = isK(n, a, m, K); System.out.
Codeforces Round #678 (Div. 2) C. Binary Search(二分+组合数
Codeforces Round #678 (Div. 2) C. Binary Search(二分+组合数学) 给出数 n ,也就是说有 0~n-1 随机排列,给出 x 以及 x 的位置 pos,问 :在 x 固定在 pos 的条件下,利用二分搜索能够找到 x 的数列的排列方式有几种 其实一开始做这个题的时候,一点思路
Codeforces Round #678 (Div. 2) C题 Binary Search(组合数学)
Codeforces Round #678 (Div. 2) C题 Binary Search(组合数学) 题目链接:https://codeforc.es/contest/1436/problem/C Andrey thinks he is truly a successful developer, but in reality he didn’t know about the binary search algorithm until recen
(最大流,二分图的多重匹配) Magic Potion
(最大流,二分图的多重匹配) Magic Potion 题意:n个人,m个怪物,k瓶药水,每个人可以打死对应的集合里面的一个怪物,一碰药水可以让一个人多打死一个怪物,每个人最多只能用一瓶药水,问最多能打死多少个怪物 思路:想到了匹配,然后用最大流做,一开始想
Codeforces559 C.Gerald and Giant Chess(dp+组合数学+容斥)
Codeforces559 C.Gerald and Giant Chess(dp+组合数学+容斥) 题意: 答案对1e9+7取模。 数据范围:h,w=1e5,n=2e3 解法: 对黑点排序。 令d[i]表示从(1,1)到达第i个黑点(x,y),且不经过其他黑点的方案数, 如果(1,1)到(x,y)矩形内没有其他黑点,那么方案数
pandas 难以置信的多重索引2——获取多重索引的值(史上最全)
pandas 难以置信的多重索引2——获取多重索引的值(史上最全) 我们平时使用到的多重索引,但是网上很少有人介绍如果获取多重索引本身的值,这部分的内容比上一节更加实用 获取多重索引的标签值 get_level_values()方法将返回一个特定级别上每个位置的标签向
多重继承和菱形问题
多重继承和菱形问题 翻译自 John Demetriou 2018年4月8日 的文章 《Multiple Inheritance And The Diamond Problem》 1 开篇之前,我假设每个人都知道在面向对象编程中继承是什么,以及它能提供什么好处。我不会深入探究对象继承的基础知识。这篇文章更关注
List集合数据移除(List.subList.clear)
List集合数据移除(List.subList.clear) List集合数据移除(List.subList.clear) 这两天遇到这么一个问题:一个集合的数据当作参数传入,现在 分段 使用这个集合的数据,使用完的数据需要在这个集合中被移除,方便获取第二段的数据。 假设:一个集合的数据长度