
Acwing:提高
文章平均质量分 53
qq_41699013
这个作者很懒,什么都没留下…
展开
-
动态规划:混合背包问题
01背包 f[i][j] = max(f[i-1][j], f[i-1][j-v[i]] + w[i] 完全背包 f[i][j] = max(f[i-1][j], f[i][j-v[i]] + w[i] 多重背包 f[i][j] = max(f[i-1][j], f[i-1][j-v[i]]+w[i], f[i-2][j-2v[i]]+2w[i], …) 多重背包二进制优化后,可以变成多个01背包问题求解 混合背包问题 #include<bits/stdc++.h> using namespac原创 2021-12-12 17:32:03 · 541 阅读 · 0 评论 -
第一章:动态规划
1.1 数字三角形模型 集合角度考虑DP问题 数字三角形 摘花生原创 2021-10-11 23:59:44 · 104 阅读 · 0 评论 -
算法提高课:树状数组
基本原理 应用: 快速求前缀和 修改某一个数 分成最多logx个部分,算1-x总和的时候,在加logn个数就可以求出来,复杂度O(logn) 2 ^ i1 是x的二进制表示的最后一位1 c[x]表示以x为右端点,长度lowbit的区间内所有数的和 图中C12应为C9-C12. 所有C的关系如图: x> 0, 必然存在最后一位1 x = ----- 100…0, 0 y有k个 Cx = 以x结尾,长度为2^k的区间和 找到x的所有子节点 x-1每一次去掉一个最后的1,去地道k次、 如何通过子节原创 2021-08-20 14:19:24 · 139 阅读 · 0 评论