![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
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 · 503 阅读 · 0 评论 -
第一章:动态规划
1.1 数字三角形模型集合角度考虑DP问题数字三角形摘花生原创 2021-10-11 23:59:44 · 59 阅读 · 0 评论 -
算法提高课:树状数组
基本原理应用:快速求前缀和修改某一个数分成最多logx个部分,算1-x总和的时候,在加logn个数就可以求出来,复杂度O(logn)2 ^ i1 是x的二进制表示的最后一位1c[x]表示以x为右端点,长度lowbit的区间内所有数的和图中C12应为C9-C12.所有C的关系如图:x> 0, 必然存在最后一位1x = ----- 100…0, 0 y有k个Cx = 以x结尾,长度为2^k的区间和找到x的所有子节点x-1每一次去掉一个最后的1,去地道k次、如何通过子节原创 2021-08-20 14:19:24 · 81 阅读 · 0 评论