摘要: lower_bound 作用: 返回第一个 大于等于 (>=) 指定值的元素的迭代器。 如果值存在: 返回该值的第一个位置。 如果值不存在: 返回比目标值 大的第一个元素 位置。 如果所有元素都小于目标值: 返回 end() 迭代器。 反向查找 \(\color{red}{小于}\) 目标值的元素: 阅读全文
posted @ 2025-10-29 18:57 Slayer-WT!!!!!!!! 阅读(3) 评论(0) 推荐(0)
摘要: 算空间时间。 时间 int main(){ clock_t start,end; //定义clock_t变量 start = clock(); //开始时间 …… end = clock(); //结束时间 cout<<"time = "<<double(end-start)/CLOCKS_PER_ 阅读全文
posted @ 2025-10-29 18:44 Slayer-WT!!!!!!!! 阅读(3) 评论(0) 推荐(0)
摘要: 要理解这段代码,需结合题目要求和题解的逆变换 + 辗转相除思路,逐部分分析: 题目核心与题解思路 回顾题目要求:给定两个线性变换 \(T1((x,y))=(x+y,y)\)、\(T2((x,y))=(x,x+y)\),对于每个查询向量 \((x,y)\),统计有多少个给定的向量可通过若干次\(T1/ 阅读全文
posted @ 2025-10-23 18:39 Slayer-WT!!!!!!!! 阅读(8) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2025-10-19 20:31 Slayer-WT!!!!!!!! 阅读(0) 评论(0) 推荐(0)
摘要: 10000h、unstable、holy、loveyourself、badguy、anytime anywhere、影迷、世界上有两个我 阅读全文
posted @ 2025-10-14 21:10 Slayer-WT!!!!!!!! 阅读(16) 评论(0) 推荐(0)
摘要: noip20d2t2 因为笨 写的详细一点。 题意 给定 n,m,对于长为 n 的排列 a,\(cnt_i=\sum_{1\leq l\leq i\leq r\leq n}[\max_{j=l}^r a_j=a_i]\)。求有多少排列 a 满足所有 \(cnt_i\) 都小于等于 m,答案对质数 p 阅读全文
posted @ 2025-10-14 20:45 Slayer-WT!!!!!!!! 阅读(12) 评论(1) 推荐(0)
摘要: 可撤销并查集只可以按照加入的时间从后到前撤销加边操作。 具体的,我们会把所有加入的边压入一个栈,然后当什么时候要撤销时不断从栈顶弹出一条边,撤销掉。而至于具体的撤销步骤,我们假设此边原来是把 y 连向 x,那么我们直接把 y 的父亲设为 y 本身,因为在合并两个集合时是把两个端点都执行了一遍找祖先的 阅读全文
posted @ 2025-10-09 20:23 Slayer-WT!!!!!!!! 阅读(8) 评论(0) 推荐(0)
摘要: 堆 可分为两种:大根堆(最大堆)、小根堆(最小堆)。 大根堆 何为大根堆?顾名思义,大根堆即指在逻辑上的二叉树结构中,根结点>子结点,总是最大的,并且在堆的每一个局部都是如此。大根堆的根结点在整个堆中是最大的元素。 priority_queue<int>q; dij使用堆时,若为大根堆,则 push 阅读全文
posted @ 2025-09-19 11:41 Slayer-WT!!!!!!!! 阅读(24) 评论(0) 推荐(0)
摘要: 第二类斯特林数(斯特林子集数) \(\begin{Bmatrix}n\\ k\end{Bmatrix}\),也可记做 \(S(n,k)\),表示将 \(n\) 个两两不同的元素,划分为 \(k\) 个互不区分的非空子集的方案数。 通项公式 \(\begin{Bmatrix}n\\m\end{Bmat 阅读全文
posted @ 2025-09-19 11:02 Slayer-WT!!!!!!!! 阅读(17) 评论(0) 推荐(0)
摘要: 指针的性质是理解其行为和使用方式的核心,主要包括以下几个方面: 1. 指针是存储地址的变量 指针的本质是一个变量,但其存储的不是数据本身,而是另一个变量(或内存单元)的内存地址。 例如:int a = 10; int* p = &a; 中,p 存储的是 a 的内存地址(如 0x7ffd6b6a45c 阅读全文
posted @ 2025-09-19 10:02 Slayer-WT!!!!!!!! 阅读(17) 评论(0) 推荐(0)