比赛 |
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;
}