为什么全错?
查看原帖
为什么全错?
489257
Mirage_Insane楼主2022/10/14 14:00
#include<bits/stdc++.h>
using namespace std;
#define SF scanf
#define PF printf
int a[1000005], p[1000005];
bool dp[1000005];
int main() {
	int n, m, len = 0;
	SF("%d%d", &n, &m);
	for(int i = 1; i <= n; i++) {
		int u, v;
		SF("%d%d", &u, &v);
		for(int k = 1; k <= v; k <<= 1) {
			a[++len] = u * k;
			v -= k;
		}
		if(v != 0) a[++len] = u * v;
	}
	int c = 0;
	for(int i = 1; i <= m; i++) {
		SF("%d", &p[i]);
		c = max(c, p[i]);
	}
	dp[0] = 1;
	for(int i = 1; i <= len; i++) {
		for(int j = c; j >= 0; j--) dp[j] |= dp[j - a[i]];
	}
	for(int i = 1; i <= m; i++) {
		if(dp[p[i]]) PF("Yes\n");
		else PF("No\n");
	}
	return 0;
}

下载数据对照后好像没问题?

2022/10/14 14:00
加载中...