一边听课一边打摆
因为每次都做一次背包会$T$飞,考虑先不考虑限制预处理方案数
然后考虑限制,用总方案数减去不合法的方案数
第$i$种硬币要超出限制至少要用$d[i]+1$个
那么考虑限制之后不合法的方案数就是$F[s-c[i]*(d[i]+1)]$
最后对硬币进行容斥,计算答案即可
1 |
|
Lonely Kid Hides in Heart
一边听课一边打摆
因为每次都做一次背包会$T$飞,考虑先不考虑限制预处理方案数
然后考虑限制,用总方案数减去不合法的方案数
第$i$种硬币要超出限制至少要用$d[i]+1$个
那么考虑限制之后不合法的方案数就是$F[s-c[i]*(d[i]+1)]$
最后对硬币进行容斥,计算答案即可
1 | #include<bits/stdc++.h> |