比赛 2022级DP专题练习赛7 评测结果 TTTTTTTTTT
题目名称 大佬 最终得分 0
用户昵称 HeSn 运行时间 30.000 s
代码语言 C++ 内存使用 5.74 MiB
提交时间 2023-02-27 19:32:28
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n, m, w, a[110], b[110], c[110];
map<int, int> mp;
int dfs(int x, int rst, int s, int cs, int lv, int sk) {
	if(x == n + 1 || rst < 0) {
		return 0;
	}
	mp[s] = 1;
	dfs(x + 1, rst - a[x], s + 1, cs, lv, sk);
	dfs(x + 1, max(w, rst - a[x] + b[x]), s, cs, lv, sk);
	if(cs < 2) {
		dfs(x + 1, rst - a[x], s, cs, lv + 1, sk);
		if(lv > 1) {
			dfs(x + 1, rst - a[x], s, cs, lv, sk * lv);
		}
		dfs(x + 1, rst - a[x], s + sk, cs + 1, 0, 1);
	}
}
signed main() {
	freopen("dalao.in", "r", stdin);
	freopen("dalao.out", "w", stdout);
	cin >> n >> m >> w;
	for(int i = 1; i <= n; i ++) {
		cin >> a[i];
	} 
	for(int i = 1; i <= n; i ++) {
		cin >> b[i];
	}
	for(int i = 1; i <= m; i ++) {
		cin >> c[i];
	}
	dfs(1, w, 0, 0, 0, 1);
	for(int i = 1; i <= m; i ++) {
		cout << mp[c[i]] << endl;
	}
	return 0;
}