分为有序计数和无序计数,往往和背包结合,至少目前看来是这样的
无序
rep(i, 1, n){
rep(j, a[i], m){ //如果不能重复选,就要变成 per(j, m, a[i])
f[j] = (f[j - a[i]] + f[j]) % mod;
}
}有序
rep(j, 0, m){ //如果只能选一次, 那就变成 per(j, m, 0)
rep(i, 1, n){
if(j >= a[i]) f[j] = (f[j - a[i]] + f[j]) % mod;
}
}