关注
unsigned long long solution2(int deep, int* coinNum, int* coinValue,int* coinSum,vector<vector<int>>& dp, int sum) {
if (deep == 6) return sum > coinNum[deep] ? 0 : 1;
if (dp[deep][sum] > 0 || sum > coinSum[deep]) return dp[deep][sum];
int ans = 0;
for (int i = 0; i <= min(sum / coinValue[deep], coinNum[deep]); ++i)
ans += solution2(deep + 1, coinNum, coinValue, coinSum, dp, sum - i*coinValue[deep]);
dp[deep][sum] = ans;
return ans;
}
unsigned long long solution3(int deep, int* coinNum, int* coinValue,int * coinSum, vector<vector<int>>& dp, int m) {
int ans = 0;
for (int i = 0; i <= m; ++i) {
if (0 == dp[deep][i]) continue;
for (int j = min(i / coinValue[deep], coinNum[deep]); j >= 0; --j) {
if (i - j*coinValue[deep] > coinSum[deep + 1]) break;
if (deep < 5)
dp[deep + 1][i - j*coinValue[deep]] += dp[deep][i];
else
ans += dp[deep][i];
}
}
return deep < 5 ? solution3(deep + 1, coinNum, coinValue, coinSum, dp, m) : ans;
}
int main() {
int m = 5000;
vector<vector<int>> dp(7, vector<int>(m+1, 0));
int coinValue[7] = { 100,50,20,10,5,2,1 }; //七种硬币面值
int coinNum[7] = { 1000,1000,1000,1000,1000,1000,1000 }; //七种硬币数量
//coinSum[i]表示在index在i-1以后的所有硬币能够凑起来的最大数,比如本例中coinSum[6]=1000,coinSum[5]=3000
int coinSum[7];
coinSum[6] = coinNum[6] * coinValue[6];
for (int i = 5; i >= 0; --i)
coinSum[i] = coinSum[i + 1] + coinNum[i] * coinValue[i];
cout << solution2(0, coinNum, coinValue, coinSum, dp, m) << endl;
vector<vector<int>> dp1(7, vector<int>(m + 1, 0));
dp1[0][m] = 1;
cout << solution3(0, coinNum, coinValue, coinSum, dp1, m) << endl;
return 0;
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
- 1... 27届学院二本,袋鼠云->快手->腾讯wxg,25年末聊聊我的前端之路1.5W
- 2... 本科五段大厂实习,秋招五个offer,我的校招结束了7425
- 3... 适可而止吧!你就是“烂泥”5896
- 4... 大四双非水产专业上岸阿里后端(五)5699
- 5... 我的世界观,就是对抗优绩主义的武器3799
- 6... 27双非杀入字节!2758
- 7... 26届双非硕Java秋招总结1644
- 8... 日常实习-小红书后端java二面1578
- 9... 实习被“放养”零产出,该及时止损还是继续苟着?1540
- 10... 大厂工作强度从夯到拉,B站真爽1474
正在热议
更多
# 实习没人带,苟住还是跑路? #
2147次浏览 67人参与
# 工作中的卑微时刻 #
29855次浏览 190人参与
# 元旦假期你打算怎么过 #
2803次浏览 85人参与
# 过年期间可能会经历的尴尬瞬间 #
48531次浏览 313人参与
# 我们是不是被“优绩主义”绑架了? #
4396次浏览 175人参与
# 从夯到拉,评价编程语言 #
27837次浏览 148人参与
# 如何看待应届生身份? #
210771次浏览 2234人参与
# 查收我的offer竞争力报告 #
263820次浏览 1644人参与
# 多益网络工作体验 #
60204次浏览 300人参与
# 牛客2025仙途报告 #
21505次浏览 325人参与
# 机械制造面试记录 #
299898次浏览 3143人参与
# 实习心态崩了 #
96585次浏览 494人参与
# 华为工作体验 #
277234次浏览 1355人参与
# 26届秋招投递记录 #
109339次浏览 652人参与
# 实习打杂,要跑路吗 #
54332次浏览 330人参与
# 你有哪些缓解焦虑的方法? #
44779次浏览 873人参与
# 找工作,行业重要还是岗位重要? #
88307次浏览 1769人参与
# 华为池子有多大 #
154591次浏览 867人参与
# 今年你最想重开的一场面试是? #
18186次浏览 174人参与
# 参加过提前批的机械人,你们还参加秋招么 #
105349次浏览 1647人参与
