摘要: bitset 简介 bitset 是 C++ 自带的一个STL。 bitset是一个01串,支持对01串上的每一位进行单点0/1修改,01串上的每一位占1bit, 一般用于在一些场合优化bool数组,或者拿来当桶。其本身的时间复杂度和空间复杂度都相当优秀。 原理 分STL自带和手写两种 其一: 将 阅读全文
posted @ 2023-11-14 20:24 int_Hello_world 阅读(29) 评论(4) 推荐(0) 编辑
摘要: 可删除堆 考虑到没什么人会选择手写普通的堆,所以用优先队列实现就好。 问题: 我们知道,在使用堆或优先队列的时候,我们只能取出堆顶,也就是所维护的最大或最小值。 那么如果我们要从所维护的一个元素里删除一个非最大或最小值呢? 最暴力的做法是将元素一个一个从堆顶弹出,直到弹出我们要删的元素,再将之前所弹 阅读全文
posted @ 2023-11-14 20:03 int_Hello_world 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 二进制拆分 二进制拆分是对多重背包的一种优化方式,可以极大的优化多重背包的时间。 前置 我们回顾下完全背包问题。 背包容积为 \(C\) , 有 \(n\) 种物品 , 每种物品有 \(k[i]\) 个, 第 \(i\) 个物品占用 \(w[i]\) 的容积,价值为 \(v[i]\) 。问能用背包装 阅读全文
posted @ 2023-11-14 18:09 int_Hello_world 阅读(53) 评论(0) 推荐(0) 编辑
摘要: day1 上午: T1: 最基础的暴力模拟,也可以贪心直接求,考场上不知道哪里写挂了。 T2: 题目要求按照拓扑的方式遍历图,分别考最优和最劣两种情况。 最优情况只需要每次贪心的走队列中最小的点即可,可用堆(直接将原本拓扑用的队列换成优先队列)实现。 最劣情况考场上想的是每次贪心地走队列中最大的点, 阅读全文
posted @ 2023-11-07 21:40 int_Hello_world 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 这是一个做题记录。 洛谷P1725 琪露诺 2023.8.5 题目链接 标签:动态规划、单调队列。 一道动态规划题,先考虑暴力一点的做法: 设 \(dp[i]\) 表示跳到第 \(i\) 个位置时所能获得的最大冰冻指数。那么 \(i\) 位置的状态可以从区间 \([i-L,i-R]\) 转移过来。 阅读全文
posted @ 2023-08-05 20:41 int_Hello_world 阅读(33) 评论(1) 推荐(2) 编辑
摘要: #前奏 出发前的稍作准备,复习一部分知识点 ## KMP的next数组的部分性质: (以下均默认下标从1开始) next[i]: 以i结尾的后缀中与其匹配的最大前缀的长度。 对于一个长度为l的字符串s,其最短循环节长度为:l-next[l] 如果$i$%$(i-next[i])==0$,那么$s[1 阅读全文
posted @ 2023-07-19 22:21 int_Hello_world 阅读(31) 评论(0) 推荐(0) 编辑
摘要: #矩阵基础 ## 定义: 数学意义上有更加严谨的矩阵定义,这里不过多展开,如有需要还请自行查询。 由$n\times m$个数排成$n$行$m$列,第$i$行$j$列的数记为$a_{i,j}$。我们称这$n \times m$个数为矩阵$A$的元素,记作: $$ A=\begin{bmatrix} 阅读全文
posted @ 2023-06-07 21:06 int_Hello_world 阅读(33) 评论(7) 推荐(1) 编辑
摘要: 教练让我学三周数论,然而数论多少还是无聊了点,所以浅学一下博弈论划划水。 (只是简单学了一下,不会记特别多。) ###**何为博弈论?** 博弈论 ,是经济学的一个分支,主要研究具有竞争或对抗性质的对象,在一定规则下产生的各种行为。博弈论考虑游戏中的个体的预测行为和实际行为,并研究它们的优化策略。 阅读全文
posted @ 2023-05-21 10:37 int_Hello_world 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 不破不立,重新记 计数原理 加法原理 做一件事,有\(n\)类办法,第\(i\)类办法有\(m_i\)种不同的方法,做这件事总共有多少种方案? 我们设总方案数为\(N\),则\(N\)满足: \( N = m_1+m_2+m_3+......+m_{n-1}+m_n \) 我们称此为加法原理 乘法原 阅读全文
posted @ 2023-05-05 21:58 int_Hello_world 阅读(22) 评论(0) 推荐(0) 编辑
摘要: **洛谷P4460** n #define int long long using namespace std; inline int read() { int x=0,f=0;char ch=getchar(); for(;!isdigit(ch);ch=getchar()) f|=(ch=='- 阅读全文
posted @ 2023-05-01 20:29 int_Hello_world 阅读(33) 评论(3) 推荐(0) 编辑