Skip to content
Author: lllyouo
Date: 20250225
tag: 完全背包
link: http://ybt.ssoier.cn:8088/problem_show.php?pid=1293

问题描述

link

分析

参考代码

cpp
#include <bits/stdc++.h>
using namespace std;

const int N = 10, M = 1010;
int n, m, a[N];
long long f[N][M];

int main() {
	cin >> m;
	n = 4;
	a[1] = 10, a[2] = 20, a[3] = 50, a[4] = 100;

	for (int i = 1; i <= n; i++) f[i][0] = 1;
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= m; j++) {
			if (j >= a[i]) f[i][j] = f[i - 1][j] + f[i][j - a[i]];
			else f[i][j] = f[i - 1][j];
		}
	}
	cout << f[n][m] << endl;

	return 0;
}