摘要: 不得不说这道 dp 既考察对时间复杂度方面的优化,也要考虑对空间方面的优化。 题意 首先从暴力说起: 首先既然让我们删除 \(k\) 个数,也就是说保留 \(N-k\) 个数。 显然可以 dfs 枚举子集加剪枝优化(不过剪不剪的好像没啥区别),这样做是 \(O(2^N)\) 估计只能过样例。 代码: 阅读全文
posted @ 2024-03-22 19:49 tomxi 阅读(43) 评论(0) 推荐(0)
摘要: 线段树: 这是一个线段树的例图。 我们可以发现其实线段树就是将几个连续的小区间拼凑成一个个大区间的过程,从而实现查找时的优秀的复杂度。 引入-分块基础的思想: 其实如果你知道分块的思想,那么你会更好理解线段树的思想,分块就是将一个序列分成 \(\sqrt N\) 个块每个块的块长就是 \(N / \ 阅读全文
posted @ 2024-03-14 21:43 tomxi 阅读(124) 评论(0) 推荐(1)
摘要: 题意 思路: 对于1操作可以采用类似链表的方法在元素 \(x\) 的后面直接插入 \(y\) 的值,即 \(nxt_x = y\)。 对于2操作可以采用链表的删除的方法先令 \(p = nxt_x\) 即 \(x\) 的后继,让 \(pre_p = pre_x\) 然后让 \(nxt_{pre_x} 阅读全文
posted @ 2024-03-14 20:35 tomxi 阅读(26) 评论(0) 推荐(0)
摘要: 分块二分: 众所周知,分块可以实现一些奇奇怪怪的区间的问题,比如以下这个题: 给定一个 \(N\) 和 \(N\) 个整数,分别为 \(A_1,A_2,A_3,A_4....A_N\) 每次询问给出三个整数 \(l,r,k\) 求所有满足 \(l \leq i \leq r,a_i \leq k\) 阅读全文
posted @ 2024-03-07 21:22 tomxi 阅读(64) 评论(0) 推荐(0)