|
|
|
@ -278,4 +278,31 @@ int main() {
|
|
|
|
|
|
|
|
|
|
**[$AcWing$ $1021$. 货币系统 ](https://www.acwing.com/problem/content/1023/)**
|
|
|
|
|
|
|
|
|
|
完全背包之恰好装满,只不过$int$装不下,需要开$long$ $long$,捎带着学习一下隔板法,应对一下高中数学组合数学。
|
|
|
|
|
完全背包之恰好装满,只不过$int$装不下,需要开$long$ $long$,捎带着学习一下隔板法,应对一下高中数学组合数学。
|
|
|
|
|
|
|
|
|
|
**十年$OI$一场空,不开$long$ $long$见祖宗。**
|
|
|
|
|
|
|
|
|
|
```cpp {.line-numbers}
|
|
|
|
|
#include <bits/stdc++.h>
|
|
|
|
|
|
|
|
|
|
using namespace std;
|
|
|
|
|
typedef long long LL;
|
|
|
|
|
|
|
|
|
|
const int N = 20;
|
|
|
|
|
const int M = 3010;
|
|
|
|
|
int n, m;
|
|
|
|
|
LL v[N];
|
|
|
|
|
LL f[M];
|
|
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
cin >> n >> m;
|
|
|
|
|
f[0] = 1;
|
|
|
|
|
for (int i = 1; i <= n; i++) {
|
|
|
|
|
cin >> v[i];
|
|
|
|
|
for (int j = v[i]; j <= m; j++)
|
|
|
|
|
f[j] += f[j - v[i]];
|
|
|
|
|
}
|
|
|
|
|
printf("%lld\n", f[m]);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
```
|