11 2023 档案

摘要:bitset 简介 bitset 是 C++ 自带的一个STL。 bitset是一个01串,支持对01串上的每一位进行单点0/1修改,01串上的每一位占1bit, 一般用于在一些场合优化bool数组,或者拿来当桶。其本身的时间复杂度和空间复杂度都相当优秀。 原理 分STL自带和手写两种 其一: 将 阅读全文
posted @ 2023-11-14 20:24 int_Hello_world 阅读(78) 评论(4) 推荐(0) 编辑
摘要:可删除堆 考虑到没什么人会选择手写普通的堆,所以用优先队列实现就好。 问题: 我们知道,在使用堆或优先队列的时候,我们只能取出堆顶,也就是所维护的最大或最小值。 那么如果我们要从所维护的一个元素里删除一个非最大或最小值呢? 最暴力的做法是将元素一个一个从堆顶弹出,直到弹出我们要删的元素,再将之前所弹 阅读全文
posted @ 2023-11-14 20:03 int_Hello_world 阅读(95) 评论(0) 推荐(0) 编辑
摘要:二进制拆分 二进制拆分是对多重背包的一种优化方式,可以极大的优化多重背包的时间。 前置 我们回顾下完全背包问题。 背包容积为 C , 有 n 种物品 , 每种物品有 k[i] 个, 第 i 个物品占用 w[i] 的容积,价值为 v[i] 。问能用背包装 阅读全文
posted @ 2023-11-14 18:09 int_Hello_world 阅读(326) 评论(0) 推荐(1) 编辑
摘要:day1 上午: T1: 最基础的暴力模拟,也可以贪心直接求,考场上不知道哪里写挂了。 T2: 题目要求按照拓扑的方式遍历图,分别考最优和最劣两种情况。 最优情况只需要每次贪心的走队列中最小的点即可,可用堆(直接将原本拓扑用的队列换成优先队列)实现。 最劣情况考场上想的是每次贪心地走队列中最大的点, 阅读全文
posted @ 2023-11-07 21:40 int_Hello_world 阅读(38) 评论(0) 推荐(0) 编辑

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