关注
果然讨论有助于发现问题, 上面开始的排序写错了 重新改了如下 #include<bits/stdc++.h>
using namespace std;
int main(){
int m, n, v, t;
while (cin >> v >> n) {
vector<int> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
}
cin >> m;
vector<int> f(n);
for (int i = 0; i < m; i++) {
cin >> t;
f[i] = a[t - 1];
a[t - 1] = -1;
}
for (int i = 0, j = m; j < n; i++) {
if (a[i] > 0) {
f[j++] = a[i];
}
}
a = move(f);
vector<vector<int> > dp(v / a[0] + 1, vector<int>(v + 1, 0));
int res = 0;
// 先挑选最喜欢的零食, 无约束
for (int i = 0; i < v / a[0] + 1; i++) {
dp[i][i * a[0]] = 1;
}
// 按喜欢程度依次挑选其他特别喜欢的零食,
for(int i = 1; i < m; i++) {
vector<vector<int>> t = move(dp);
int size = v / a[i] + 1;
dp = vector<vector<int> >(size, vector<int>(v + 1, 0));
for (int j = 1; j < t.size(); j++) {
// 每次取的要比前一种要少
for (int k = min(size - 1, j - 1); k >= 0; k--) {
for (int l = k * a[i]; l <= v; l++){
dp[k][l] = (dp[k][l] + t[j][l - k * a[i]]) % 10000007;
}
}
}
}
// 统计各花费的方案数
vector<int> cur(v + 1, 0);
for (int i = 0; i <= v; i++) {
for (int j = 0; j < dp.size(); j++) {
cur[i] = (cur[i] + dp[j][i]) % 10000007;
}
}
// 按完全背包更新其余零食
for (int i = m; i < n; i++) {
for (int j = a[i]; j <= v; j++) {
cur[j] = (cur[j] + cur[j - a[i]]) % 10000007;
}
}
cout << cur[v] << endl;
}
return 0;
}
查看原帖
点赞 评论
相关推荐
Lucky_77:“一个人越会获取信息,越会整理并利用信息,就越容易走的更远。” 这句话非常准确,这个世界很多赚的就是一个信息差,楼主很早就有这样的认知,真的很厉害
点赞 评论 收藏
分享
汉献帝刘协:公积金随便提的吧,我这里一年可以全提出来一次,不用离职,不用交什么证明,北京不至于那么恶心你
点赞 评论 收藏
分享
牛客热帖
正在热议
# 25届秋招总结 #
430443次浏览 4357人参与
# 实习,投递多份简历没人回复怎么办 #
2449670次浏览 34815人参与
# 阿里云管培生offer #
66755次浏览 1827人参与
# 地方国企笔面经互助 #
7546次浏览 18人参与
# ai智能作图 #
37851次浏览 459人参与
# 虾皮求职进展汇总 #
103257次浏览 827人参与
# 北方华创开奖 #
68511次浏览 566人参与
# 发工资后,你做的第一件事是什么 #
11332次浏览 55人参与
# 实习想申请秋招offer,能不能argue薪资 #
38482次浏览 313人参与
# 机械求职避坑tips #
24354次浏览 253人参与
# 工作中,努力重要还是选择重要? #
34126次浏览 378人参与
# 我的实习求职记录 #
6149025次浏览 84118人参与
# 你投递的公司有几家约面了? #
32915次浏览 186人参与
# 25届机械人为了秋招做了哪些准备? #
26906次浏览 367人参与
# 软件开发投递记录 #
1485309次浏览 23970人参与
# 机械人怎么评价今年的华为 #
158617次浏览 1354人参与
# 提前批简历挂麻了怎么办 #
149390次浏览 1971人参与
# 如果再来一次,你还会选择这个工作吗? #
122090次浏览 1189人参与
# 工作两年想退休了 #
56244次浏览 724人参与
# 投递实习岗位前的准备 #
1194437次浏览 18514人参与
# 华为工作体验 #
113023次浏览 874人参与
# 我在牛爱网找对象 #
75332次浏览 557人参与