算法研究心得
文章平均质量分 51
Sitlos
有梦为马,随处可栖。
展开
-
关于双端队列优化多重背包问题的学习笔记
Problem:有n种物品,它们的重量和价值分别是wi和vi。现在要从中选出一些物品使得总重量不超过W,并且价值的和最大。第i种物品最多取mi个。 暴力算法分析:三重循环枚举物品,背包容量,物品个数。效率为O(nW∑mi) 如果用1,2.....2^k的组合来表示0到0~2^(k+1)-1的所有整数的话。 可以在O(nW∑ log2(mi))的效率内解决问题。 双端原创 2017-07-12 11:06:01 · 655 阅读 · 0 评论 -
动态树学习笔记
动态树:一种用于维护有根树森林,支持对树的分割和合并操作的数据结构。 通常支持如下操作: 查询一个点的父亲 查询一个点所在的树的根 修改某个节点的权 向从某个节点到它所在的树的根的路径上的所有的节点的权增加一个数 查询从某个节点到它所在的树的根的路径上的所有的节点的权的最小值 把一棵树从某个节点和它的父亲处断开,使其成为两棵树 让一棵树的根成为另一棵树的某个节点的儿子,从而合并这原创 2017-07-13 10:36:40 · 556 阅读 · 0 评论