文章

11

粉丝

20

获赞

4

访问

8.3k

头像
DP优化解法同1123小偷的背包,dp数组大一点就过了
P1035
发布于2023年8月5日 13:51
阅读数 898

#include<cstdio>
#include<cstring>
int main() {
	int S, n;
	while(scanf("%d%d", &S, &n) != EOF){
		int dp[201], w[101];
		memset(dp, 0, sizeof(dp)); dp[0] = 1;
		for (int i = 1; i <= n; i++) scanf("%d", &w[i]);
		for (int i = 1; i <= n; i++)
			for (int j = S; j >= w[i]; j--)
				dp[j] |= dp[j - w[i]];

		if (dp[S]) puts("YES");
		else puts("NO");
	}
}

数据里有个142的,所以dp数组至少也要200,在机试的时候,先给足空间!不过希望题目也能给足些条件,因为着实判断不出背包大小。

登录查看完整内容


登录后发布评论

3 条评论
admin SVIP
2023年8月5日 15:52

dp数组需要开大一点wink

赞(0)

考小研 : 回复 admin: 开大数组好像没什么用呢,感觉是哪里输入的问题

2023年8月5日 18:00

考小研 : 回复 admin: 还真的是,非常感谢!!

2023年8月5日 23:19