- 博客(33)
- 收藏
- 关注
原创 线段树详解
1、线段树是一棵二叉搜索树,它储存的是一个区间的信息。2、每个节点以结构体的方式存储,结构体包含以下几个信息:区间左端点、右端点;(这两者必有)这个区间要维护的信息(事实际情况而定,数目不等)。3、线段树的基本思想:二分4、线段树一般结构如图所示:5、特殊性质:由上图可得,1、每个节点的左孩子区间范围为[l,mid],右孩子为[mid+1,r]2、对于结点k,左孩子结点为2*k,右孩子为2*k+1,这符合完全二叉树的性质。
2024-01-21 20:40:09
396
原创 priority_queue(一)
PriorityQueue 一个基于优先级的无界优先级队列。优先级队列的元素按照其自然顺序进行排序,或者根据构造队列时提供的 Comparator 进行排序,具体取决于所使用的构造方法。该队列不允许使用 null 元素也不允许插入不可比较的对象(没有实现Comparable接口的对象)。PriorityQueue 是一个无界队列,但是初始的容量(实际是一个Object[]),随着不断向优先级队列添加元素,其容量会自动扩容,无需指定容量增加策略的细节。对于堆的合并而言,他是一个不错的选择。
2024-01-06 08:55:56
409
原创 2023我的编程之旅
P.S.本人初中生,写作能力有限,可能赶不上那些企业员工的2023总结,但是,在优快云的帮助下,我的确得到了许多帮助。它 功能强大 ,支持区间求和,区间最大值,区间修改,单点修改等操作。第一行:三个整数n,m,p,(n
2024-01-06 08:50:03
800
4
原创 洛谷P1441砝码称重(二进制讲法)
bitset可以说是一个多位二进制数,每八位占用一个字节,因为支持基本的位运算,所以可用于状态压缩,n位bitset执行一次位运算的时间复杂度可视为n/32.首先先水一发本题的正解。若s至少有一位为1,则s.any()返回true,s.none()返回false;若s所有位都为0,则s.any()返回false,s.none()返回true;s.set(k,v)把s的第k位改为v,即s[k]=v;s.reset(k)把s的第k位改为0,即s[k]=0;s.flip(k)把s的第k位取反,即s[k]^=1。
2023-12-16 09:41:34
509
1
原创 c++二分查找(往下看,有彩蛋)
有两个指针,分别为左指针和右指针分别指向待查找集合的首部和尾部,然后再定义一个中部指针等于首指针加尾指针除以二,如果过大,则左指针加一,如果过小,则右指针减一。循环条件:左指针小于等于右指针。
2023-12-02 09:17:18
404
原创 洛谷最新题解P1782旅行商的背包
首先小S收到的第一批货肯定是使用多重背包,由于数据量过大,所以多重背包使用两种优化方法:单调队列或二进制优化。单调队列不在NOIP考察范围之内,但为了让读者开拓视野。这道题是一道典型的多重背包+完全,个人感觉建议降绿,蓝题不至于。最后将两者所得的结果相加即可。,所以我们使用单调队列。
2023-12-02 09:08:22
584
原创 洛谷背包专题P2677 最大约数和
dalao看到这里已经可以划走了,本文主要就是科普一下。首先要遍历一下所有小于S的数的约数,将它们存在B数组里。这里i就相当于01模版里的w体积,Bi相当于c价值。很简单的一道01题目。
2023-11-25 09:29:51
395
原创 CCF go! go! go!之实用知识(必看!!)
+1] = [00000001]原 = [00000001]反 = [00000001]补。[-1] = [10000001]原 = [11111110]反 = [11111111]补。4.邻接矩阵:两个顶点A、B之间存在边的话,则矩阵U[A][B],U[B][A]不为零。1)排列公式:P(n,m)=n*(n-1)*...*(n-m+1)[+1] = [00000001]原 = [00000001]反。2)组合公式:C(n,m)=P(n,m)/P(m,1)1)同栈,只不过队列是一个先进先出表(FIFO)
2023-09-09 12:13:11
101
1
原创 P1087 FBI树(洛谷题解最佳独创版---栈运算)
FBI 树是一种二叉树,它的结点类型也包括 F 结点,B 结点和 I 结点三种。我们可以把由 0 和 1 组成的字符串分为三类:全 0 串称为 B 串,全 1 串称为 I 串,既含 0 又含 1 的串则称为 F 串。现在给定一个长度为 2^N2N 的 01 串,请用上述构造方法构造出一棵 FBI 树,并输出它的后序遍历序列。第一行是一个整数 N(0 \le N \le 10)N(0≤N≤10),对于 40\%40% 的数据,N \le 2N≤2;第二行是一个长度为 2^N2N 的 01 串。
2023-07-29 20:31:07
169
原创 浅谈STL函数库
STL,是c++的一个十分重要的函数库,他是直接在c++的内存空间中开辟一部分,不占用内存空间,是竞赛是降低空间复杂度的一个不错选择。STL容器种类:栈(stack);队列(queue);集合(set);图(map);树(tree);除此之外,还有许多,大家可以自行参考。mapb;setc;
2023-06-03 11:23:56
101
原创 【Dev C++坦克大战】
我来也!!各位不充VIP的小盆友,福利来啦!!免费的坦克大战!!废话不多说,献上代码!(懒得可以直接复制哈) 我来也!!各位不充VIP的小盆友,福利来啦!!免费的坦克大战!!废话不多说,献上代码!(懒得可以直接复制哈)#include <stdio.h> #include <windows.h> #include <time.h> //里规格:长3
2021-11-22 19:49:52
772
转载 Dev C++坦克大战(免费)
我来也!!各位不充VIP的小盆友,福利来啦!!免费的坦克大战!!废话不多说,献上代码!#include <stdio.h>#include <windows.h>#include <time.h> //里规格:长39*2=78 (真坐标)(假坐标宽为39) 高39 //外规格:长41*2=82 (真坐标)(假坐标宽为41) 高41
2021-09-20 18:21:22
3125
2
c++面向对象的问题:operator
2023-08-14
信息学奥赛一本通··快速傅里叶变换
2023-08-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人