老实人用dp,悬关
查看原帖
老实人用dp,悬关
766880
jingliang_youxi楼主2024/8/14 09:45
#include <bits/stdc++.h>
using namespace std;

int maxn(int a, int b) {
	if (a > b) {
		return a;
	} else {
		return b;
	}
}

int minn(int a, int b) {
	if (a > b) {
		return b;
	} else {
		return a;
	}
}
int n, w, a[10000001], c, dp[10000001];

int main() {

	cin >> n >> w;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
	}
	for (int i = 1; i <= n; i++) {
		c = 1000000;
		for (int j = 1; j <= n; j++) {
			if (i - a[j] >= 0) {
				c = minn(c, dp[i - a[j]]);
			}
		}
		dp[i] = c + 1;
	}
	cout << dp[w];
	return 0;
}
2024/8/14 09:45
加载中...