05 2019 档案

摘要:树链剖分 问题 将树上x到y最短路径上所有结点的值都加上z 可以用树上差分,cf[x]+=z ; cf[y]+=z; cf[lac(x,y)] = z; cf[fa[lca(x,y)]] = z; 求树上从x到y结点最短路径的点权和或者边长和 dist = dis[x] + dis[y] 2 dis 阅读全文
posted @ 2019-05-28 13:37 西风show码 阅读(139) 评论(0) 推荐(0) 编辑
摘要:树上差分 点差分 cf[maxn] cf[i]记录点i被经过了多少次 当s t最短路径上每个点都被经过一次,则: 边差分 cf[maxn] 记录点i到其父节点的边被经过了多少次 当s t最短路径上每个边都被经过一次,则: 核心算法 LCA,可以用倍增法,在线求LCA(s,t), DFS遍历树得到差分 阅读全文
posted @ 2019-05-27 20:56 西风show码 阅读(185) 评论(0) 推荐(0) 编辑
摘要:母函数 定义 又称生成函数,用多个独立多项式相乘来解决组合问题。 只关心多项式的系数,而不关心变量x的取值 普通型母函数 HDU 1085 题意:给你1,2,5这几个硬币,每一个有a,b,c个,问你最小的不能达到的价值是多少? 代码 c++ include include using namespa 阅读全文
posted @ 2019-05-26 22:44 西风show码 阅读(260) 评论(0) 推荐(0) 编辑
摘要:单调队列 作用 解决滑动窗口最值问题,使得原数组每个元素最多入队和出队1次,就能够求出所有窗口的最值,避免了重复比较求最值 优化其他算法 性质 以维护滑动窗口最小值为例 需要构建单调递增双端队列,使得队首保存当前窗口最小值在原数列中所处的位置 遍历原数组 若当前值大于队尾值或者队列为空,则直接把当前 阅读全文
posted @ 2019-05-15 12:43 西风show码 阅读(129) 评论(0) 推荐(0) 编辑
摘要:c++ include include include include include include include include include include include using namespace std; typedef long long ll; const double EP 阅读全文
posted @ 2019-05-02 19:37 西风show码 阅读(179) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示