随笔分类 -  笔记qwq

摘要:我们通常采用递归的方式实现树形dp。 对于每个节点,先递归在它的每个子节点上进行dp,在回溯时,从子节点向根节点进行状态转移。 顺序一般为从叶子结点到根节点递推。 以下是写的一些树形dp题目: 一. P1352 没有上司的舞会 以子树的根作为dp状态的第一维。容易发现,每个员工是否参加至于他的上司是 阅读全文
posted @ 2023-10-16 16:37 Miya555 阅读(36) 评论(0) 推荐(0) 编辑
摘要:8月集训学了权值线段树,当时没怎么加强训练。 国庆刚好开始有时间,巩固巩固。补上学习笔记。 首先介绍权值树。其本质是一个记录每个数出现次数的线段树,也就是由桶建成的树。 接下来介绍各种操作。 1.插入。 由于统计的是出现次数,从这个数往上依次加1即可。 void insert(int x,int l 阅读全文
posted @ 2023-09-29 11:10 Miya555 阅读(27) 评论(1) 推荐(0) 编辑
摘要:让我们来一步一步理解! 以下是源于oiwiki的一些解释: 线段树通过将每个长度不为1的区间划分至左右两个区间。易得,时间复杂度为O(logn)相比树状数组其可操作性更强。 1.向上更新 void push_up(int rt){//向上更新 sum[rt] = sum[rt << 1] + sum 阅读全文
posted @ 2023-05-19 22:01 Miya555 阅读(37) 评论(1) 推荐(0) 编辑
摘要:等我写完。 普通fhq treap: enum { Maxn = 1000005 }; struct FHQTreap { int lson[Maxn], rson[Maxn], data[Maxn]; int rnd[Maxn], sze[Maxn], root, tot, seed; FHQTr 阅读全文
posted @ 2023-05-16 16:26 Miya555 阅读(13) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
主题色彩