关注
按喜好程度排序, 每次按取的件数和当前花费金额分类记录, 剩下普通零食按完全背包更新就可以了, 这是后来改的, 不一定完全正确, 欢迎讨论..觉得不错的点个赞呗 #include<bits/stdc++.h>
using namespace std;
vector<int> f;
bool cmp(const int& a, const int& b) {
return f[a] < f[b];
}
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;
f = vector<int>(n, n);
for (int i = 0; i < m; i++) {
cin >> t;
f[t - 1] = i;
}
sort(a.begin(), a.end(), cmp);
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;
}
查看原帖
点赞 13
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
2025-11-19 17:50
西北政法大学 新媒体运营 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 哪些公司在招寒假实习? #
13835次浏览 171人参与
# 卷__卷不过你们,只能卷__了 #
10877次浏览 234人参与
# MiniMax求职进展汇总 #
660次浏览 23人参与
# 26年哪些行业会变好/更差 #
17727次浏览 233人参与
# 写论文的崩溃时刻 #
5732次浏览 133人参与
# 去年的flag与今年的小目标 #
9194次浏览 182人参与
# 现在还是0offer,延毕还是备考 #
1256065次浏览 7922人参与
# 机械人,你最希望上岸的公司是? #
198004次浏览 1916人参与
# 有深度的简历长什么样? #
15759次浏览 327人参与
# 你不能接受的企业文化有哪些 #
11008次浏览 156人参与
# 入职第一天 #
9603次浏览 202人参与
# 你都用AI做什么 #
6376次浏览 144人参与
# 关于春招你都做了哪些准备? #
122105次浏览 705人参与
# 国企vs私企,你更想去? #
305333次浏览 2485人参与
# 最难的技术面是哪家公司? #
62948次浏览 949人参与
# 央国企投递记录 #
170259次浏览 1639人参与
# 一人分享一道面试手撕题 #
21514次浏览 765人参与
# 机械人还在等华为开奖吗? #
304958次浏览 1553人参与
# 你在职场上见过哪些“水货”同事 #
29106次浏览 162人参与
# 现在前端的就业环境真的很差吗 #
492796次浏览 5973人参与
# 机械人的秋招小目标 #
26055次浏览 229人参与

查看1道真题和解析