AC了,但不明白为什么
查看原帖
AC了,但不明白为什么
1287103
lyx0011楼主2025/7/24 13:54

rt,我的代码是这样的

#include <bits/stdc++.h>
using namespace std;
const int N = 10005, inf = 0x3f3f3f3f, mod = 1e9 + 7;
int n, w;
long long dp[N], a[N];

int main() {
	cin >> n >> w;

	dp[0] = 1;

	for (int i = 1; i <= n; i++) {
		cin >> a[i];
	}

	for (int j = 1; j <= w; j++) {
		for (int i = 1; i <= n; i++) {
			if (j >= a[i]) {
				dp[j] = (dp[j - a[i]] + dp[j]) % mod;
			}
		}
	}

	cout << dp[w];
	return 0;
}

其实跟各位dalao的长得差不多,但是我不明白一点:为什么要第一层循环先遍历体积,第二层循环遍历物品?为什么不能先遍历物品再遍历体积呢?

有没有大佬知道为什么,会关awa

2025/7/24 13:54
加载中...