- 博客(50)
- 收藏
- 关注
原创 用c++写病毒(2)
这里只是简单重复调用自己,然后一直声明一块野内存(即无法访问却占用内存的小偷),然后内存就会在3s内涨到100%,CPU也是长势喜人。命名为RAM.cpp(注意,是大写),逝一逝,如果能,就拖到hhh文件夹内。先命名为message_box.cpp,逝一逝,如果能,就拖到hhh文件夹内。等电脑重启好后,就把这个exe文件双击运行,逝一逝,如果成功了,就拖到hhh文件夹里。逝一逝,如果能,就拖到hhh文件夹内。逝一逝,如果能,就拖到hhh文件夹内。逝一逝,如果能,就拖到hhh文件夹内。
2025-06-14 20:45:37
135
原创 用c++写病毒(1)
病毒将会隐藏在D盘里,并且开启隐藏模式,在不访问的前提下会潜伏十天,十天后自动开启start.exe。如果外界访问了该文件夹,则直接让计算机蓝屏,并把错误报告改为:非法访问,计算机已自动进行安全模式,等重启后自动开启start.exe。在潜水的时间内,会一直发送邮件给电脑,邮件具体为:亲爱的用户:亲爱的用户,您的计算机受到入侵,病毒将在十天后开启,凭借现有技术还无法将其清楚,请关注优快云的“一名开心的中学生”用户,然后私信Ta:“求救,一名开心的中学生”,Ta将立刻发过来解决病毒的程序,非诚勿扰。
2025-05-25 13:53:12
260
原创 c++的单调栈
将一个元素插入单调栈时,为了维护栈的单调性,需要在保证将该元素插入到栈顶后整个栈满足单调性的前提下弹出最少的元素。顾名思义,单调栈即满足单调性的栈结构。与单调队列相比,其只在一端进行进出。插入元素 14时为了保证单调性需要依次弹出元素 0,11,操作后栈变为。为了描述方便,以下举例及伪代码以维护一个整数的单调递增栈为例。自然就是从栈顶读出来一个元素,该元素满足单调性的某一端。例如,栈中自顶向下的元素为 {0,11,45,81}。例如举例中取出的即栈中的最小值。
2025-05-18 10:25:42
154
原创 c++的块状数据结构
其实,分块是一种思想,而不是一种数据结构。从 NOIP 到 NOI 到 IOI,各种难度的分块思想都有出现。分块的基本思想是,通过对原数据的适当划分,并在划分后的每一个块上预处理部分信息,从而较一般的暴力算法取得更优的时间复杂度。分块的时间复杂度主要取决于分块的块长,一般可以通过均值不等式求出某个问题下的最优块长,以及相应的时间复杂度。分块是一种很灵活的思想,相较于树状数组和线段树,分块的优点是通用性更好,可以维护很多树状数组和线段树无法维护的信息。
2025-05-18 09:47:52
992
原创 c++的前世今生
C++的历史起源于1979年,当时Bjarne Stroustrup在AT&T贝尔实验室工作,他的目标是创建一种新编程语言,这种语言能够结合C语言的高效性和灵活性,同时加入面向对象编程(OOP)的特性以提高软件的可维护性和可扩展性。Stroustrup的工作最终导致了C with Classes的诞生,这是C++的前身。到了1983年,C with Classes正式更名为C++,标志着这门语言从C语言的一个增强版转变为一个独立的编程语言。
2025-05-17 19:19:17
495
原创 c++的堆
配对堆是一棵满足堆性质的带权多叉树(如下图),即每个节点的权值都小于或等于他的所有儿子(以小根堆为例,下同)。通常我们使用儿子 - 兄弟表示法储存一个配对堆(如下图),一个节点的所有儿子节点形成一个单向链表。每个节点储存第一个儿子的指针,即链表的头节点;和他的右兄弟的指针。这种方式便于实现配对堆,也将方便复杂度分析。T v;// T为权值类型// child 指向该节点第一个儿子,sibling 指向该节点的下一个兄弟。// 若该节点没有儿子/下个兄弟则指针指向 nullptr。
2025-05-17 17:22:08
545
原创 c++的并查集
合并时,选择哪棵树的根节点作为新树的根节点会影响未来操作的复杂度。而反 Ackermann 函数 a(n)的定义是阿克曼函数的反函数,即为最大的整数 m 使得A(m, n) <= n。并查集是一种用于管理元素所属集合的数据结构,实现为一个森林,其中每棵树表示一个集合,树中的节点表示对应集合中的元素。初始时,每个元素都位于一个单独的集合,表示为一棵只有根节点的树。方便起见,我们将根节点的父亲设为自己。为阿克曼函数的反函数,其增长极其缓慢,也就是说其单次操作的平均运行时间可以认为是一个很小的常数。
2025-05-17 16:48:54
573
原创 c++的哈希表
举个例子,如果键值是一个人的身份证号码,哈希函数就可以是号码的后四位,当然也可以是号码的前四位。在实际的应用中,键值可能是更复杂的东西,比如浮点数、字符串、结构体等,这时候就要根据具体情况设计合适的哈希函数。可以把哈希表理解为一种高级的数组,这种数组的下标可以是很大的整数,浮点数,字符串甚至结构体。查询的时候需要把对应位置的链表整个扫一遍,对其中的每个数据比较其键值与查询的键值是否一致。当键值的范围比较小的时候,可以直接把键值作为数组的下标,但当键值的范围比较大,比如以。这种方法虽然简单,但并不是完美的。
2025-05-17 16:33:04
676
原创 c++的链表
链表因其链状的结构,能方便地删除、插入数据,操作次数是 O(1)。但也因为这样,寻找、读取数据的效率不如数组高,在随机访问数据中的操作次数是 O(1)。由于链表首尾相连,在插入数据时需要判断原链表是否为空:为空则自身循环,不为空则正常插入数据。不同之处在于,指针域有左右(或上一个、下一个)之分,用来连接上一个结点、当前结点、下一个结点。,但它利用按位异或的值,仅使用一个指针的内存大小便可以实现双向链表的功能。可得到后一个元素的地址,反向遍历时用后一个元素的地址异或当前节点的。,从链表中删除它时,将。
2025-05-17 16:17:26
616
原创 c++的队列
使用数组模拟队列会导致一个问题:随着时间的推移,整个队列会向数组的尾部移动,一旦到达数组的最末端,即使数组的前端还有空闲位置,再进行入队操作也会导致溢出(这种数组里实际有空闲位置而发生了上溢的现象被称为「假溢出」)。队列(queue)是一种具有「先进入队列的元素一定先出队列」性质的表。解决假溢出的办法是采用循环的方式来组织存放队列元素的数组,即将数组下标为 0 的位置看做是最后一个位置的后继。双端队列是指一个可以在队首/队尾插入或删除元素的队列。通常用一个数组模拟一个队列,用两个变量标记队列的首尾。
2025-05-17 15:38:57
639
原创 c++的栈
栈的修改与访问是按照后进先出的原则进行的,因此栈通常被称为是后进先出(last in first out)表,简称 LIFO 表。栈是 OI 中常用的一种线性数据结构。请注意,本文主要讲的是栈这种数据结构,而非程序运行时的系统栈/栈空间。还提供了一些运算符。较为常用的是使用赋值运算符。C++ 中的 STL 也提供了一个容器。
2025-05-17 14:57:18
223
原创 c++小白学c++日常——数据结构
众所周知,知周所众。c++是一门非常复杂的语言,光数据结构就有三个大类。而我这个小白,就是来学习这门复杂的语言的。废话不多说,下面是正文部分。
2025-05-17 14:22:50
1624
1
原创 c++头文件介绍(acpiioct.h)
不同电脑可能会有差异,但是在Dev-Cpp后面的都一样。其实总结下来,就是(Dev-Cpp地址) + (头文件地址)。
2025-05-05 11:15:29
271
选择排序模版(c++)
2024-12-26
冒泡排序模版(c++)
2024-12-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人