- 博客(24)
- 收藏
- 关注
原创 《进位制》
二进制/八进制/十六进制转十进制还是以二进制为例二进制数转换为十进制数,只需将每个位的值,乘以 次即可,其中 为当前位的位数,个位的位数为 0。 二进制/八进制/十六进制间的相互转换 一个八进制位可以用 3 个二进制位来表示(因为 ),一个十六进制位可以用 4 个二进制位来表示(),反之同理。最后,点个赞加关注呗!
2025-01-26 23:34:57
365
原创 <贪心算法>
找零钱问题]假如老板要找给我99分钱,他有上面的面值分别为25,10,5,1的硬币数,为了找给我最少的硬币数,那么他是不是该这样找呢,先看看该找多少个25分的,诶99/25=3,好像是3个,要是4个的话,我们还得再给老板一个1分的,我不干,那么老板只能给我3个25分的拉,由于还少给我24,所以还得给我2个10分的和4个1分。其实此题可以用贪心法来求解,只是刚才的标准不对,正确的标准是:先把整数转换成字符串,然后在比较a+b和b+a,如果a+b>=b+a,就把a排在b的前面,反之则把a排在b的后面。
2025-01-16 13:54:44
325
原创 《《链表》》
链表因其链状的结构,能方便地删除、插入数据,操作次数是O(1)。但也因为这样,寻找、读取数据的效率不如数组高,在随机访问数据中的操作次数是 O(n)。链表是一种用于存储数据的数据结构,通过如链条一般的指针来连接元素。它的特点是插入与删除数据十分方便,但寻找与读取数据的表现欠佳。链表和数组都可用于存储数据。与链表不同,数组将所有元素按次序依次存储。
2024-12-14 23:04:02
85
原创 <<最短路径>>
一.问题引入 问题:从某顶点出发,沿图的边到达另一顶点所经过的路径中,各边上权值之和最小的一条路径——最短路径。解决最短路的问题有以下算法,Dijkstra算法,Bellman-Ford算法,Floyd算法和SPFA算法,另外还有著名的启发式搜索算法A*,不过A*准备单独出一篇,其中Floyd算法可以求解任意两点间的最短路径的长度。笔者认为任意一个最短路算法都是基于这样一个事实:从任意节点A到任意节点B的最短路径不外乎2种可能,1是直接从A到B,2是从A经过若干个节点到B。二.Dijk
2024-12-14 23:03:40
664
原创 《《二分》》
注意,这里的有序是广义的有序,如果一个数组中的左侧或者右侧都满足某一种条件,而另一侧都不满足这种条件,也可以看作是一种有序(如果把满足条件看做1 ,不满足看做0,至少对于这个条件的这一维度是有序的)。如果中间元素小于所查找的值,那么左侧的只会更小,不会有所查找的元素,只需到右侧查找;C++ 标准库中实现了查找首个不小于给定值的元素的函数 std::lower_bound 和查找首个大于给定值的元素的函数 std::upper_bound,二者均定义于头文件 中。
2024-09-16 22:11:09
558
原创 递归 & 分治
递归(英语:Recursion),在数学和计算机科学中是指在函数的定义中使用函数自身的方法,在计算机科学中还额外指一种通过重复将问题分解为同类的子问题而解决问题的方法。
2024-09-16 21:57:51
884
原创 《《贪心》》
最优子结构的意思是问题能够分解成子问题来解决,子问题的最优解能递推到最终问题的最优解。思路是无论当前的选项是否最优都接受,然后进行比较,如果选择之后不是最优了,则反悔,舍弃掉这个选项;1.反证法:如果交换方案中任意两个元素/相邻的两个元素后,答案不会变得更好,那么可以推定目前的解已经是最优解了。用排序法常见的情况是输入一个包含几个(一般一到两个)权值的数组,通过排序然后遍历模拟计算的方法求出最优值。可想而知,并不是所有的时候贪心法都能获得最优解,所以一般使用贪心法的时候,都要确保自己能证明其正确性。
2024-07-27 20:33:32
480
原创 《《链表》》
链表因其链状的结构,能方便地删除、插入数据,操作次数是 O(1)。但也因为这样,寻找、读取数据的效率不如数组高,在随机访问数据中的操作次数是 O(N)。由于链表首尾相连,在插入数据时需要判断原链表是否为空:为空则自身循环,不为空则正常插入数据。链表是一种用于存储数据的数据结构,通过如链条一般的指针来连接元素。若为空,则将 node 的 left 和 right 指针,以及 p 都指向自己;否则,将 node 的 next 指针指向 p 的下一个结点;将 node 的 right 指针指向 p 的右结点;
2024-07-26 20:16:59
791
原创 《《队列》》
队列(queue)是一种具有「先进入队列的元素一定先出队列」性质的表。否则把 F 的元素倒过来压到 S 中(其实就是一个一个弹出插入,做完后是首尾颠倒的),然后再让 S 弹栈。<queue> 头文件中还提供了优先队列 std::priority_queue,因其与 堆 更为相似,在此不作过多介绍。C++ 在 STL 中提供了一个容器 std::queue,使用前需要先引入 <queue> 头文件。通常用一个数组模拟一个队列,用两个变量标记队列的首尾。还有一种冷门的方法是使用两个 栈 来模拟一个队列。
2024-07-21 20:40:44
860
原创 《《栈》》
STL 容器 std::vector、std::deque 和 std::list 满足这些要求。如果不指定,则默认使用 std::deque 作为底层容器。栈的修改与访问是按照后进先出的原则进行的,因此栈通常被称为是后进先出(last in first out)表,简称 LIF使用数组模拟栈。请注意,本文主要讲的是栈这种数据结构,而非程序运行时的系统栈/栈空间。此外,std::stack 还提供了一些运算符。st.push() 插入传入的参数到栈顶。st.size() 返回元素数量。
2024-07-21 20:30:40
355
原创 《单调栈》
将一个元素插入单调栈时,为了维护栈的单调性,需要在保证将该元素插入到栈顶后整个栈满足单调性的前提下弹出最少的元素。插入元素 时为了保证单调性需要依次弹出元素 0,11,操作后栈变为 {14,45,81}。顾名思义,单调栈即满足单调性的栈结构。与单调队列相比,其只在一端进行进出。为了描述方便,以下举例及伪代码以维护一个整数的单调递增栈为例。自然就是从栈顶读出来一个元素,该元素满足单调性的某一端。例如,栈中自顶向下的元素为{0,11,45,81}。例如举例中取出的即栈中的最小值。
2024-07-21 20:22:12
338
原创 简单入侵对方电脑
打开cmd 输入:net share c$=c:\(将他的磁盘共享出去,同时也要打开电脑上的允许远程操控权限)当对象点击后,我们就可通过脚本创建的用户入侵电脑了。(shutdown -a阻止脚本)从本机cmd上输入net use k: \192.168.1.103\c$然后我们用mstsc命令利用我们脚本创建的帐户密码登录对方主机。shutdown -s -t 60 -c “你长的真“帅”。将写好.bat脚本放入攻击对象电脑中。(也可放到自启动下)。入侵成功,接下来就可以随心所欲了。
2024-07-19 22:14:15
1930
原创 黑客常用的cmb
nslookup命令是Windows和Linux操作系统中的一个命令行工具,用于查询域名系统(DNS)服务器,以获取指定域名对应的IP地址、域名服务器等信息。nslookup命令可以帮助我们解决一些域名解析的问题,如查询域名是否被正确解析、查询域名的DNS记录、检验DNS服务器的可用性等。ping命令是一个常用的网络工具,用来测试和诊断网络连接状况。tracert命令是一个网络工具,用于追踪数据包从源主机到目标主机的路径,查询每个路由器的IP地址和名称等信息,以便诊断和解决网络连接问题。
2024-07-19 21:53:15
348
原创 cmd命令
syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码。mplayer2-------简易widnows media player。wscript--------windows脚本宿主设置。conf-----------启动netmeeting。winver---------检查Windows版本。wupdmgr--------windows更新程序。iexpress-------木马捆绑工具,系统自带。tsshutdn-------60秒倒计时关机命令。
2024-07-19 21:48:07
874
原创 09:字符菱形
给定一个字符,用它构造一个对角线长5个字符,倾斜放置的菱形。总时间限制: 1000ms 内存限制: 65536kB。输入只有一行, 包含一个字符。
2024-07-19 20:23:46
401
原创 08:字符三角形
给定一个字符,用它构造一个底边长5个字符,高3个字符的等腰字符三角形。总时间限制: 1000ms 内存限制: 65536kB。该字符构成的等腰三角形,底边长5个字符,高3个字符。输入只有一行, 包含一个字符。
2024-07-18 22:07:37
332
原创 07:输出浮点数
读入一个双精度浮点数,分别按输出格式“%f”,“%f”保留5位小数,“%e”和“%g”的形式输出这个整数,每次在单独一行上输出。总时间限制: 1000ms 内存限制: 65536kB。第二行是按“%f”保留5位小数输出的双精度浮点数;第一行是按“%f”输出的双精度浮点数;第三行是按“%e”输出的双精度浮点数;第四行是按“%g”输出的双精度浮点数。
2024-07-18 22:06:30
179
原创 06:空格分隔输出
读入一个字符,一个整数,一个单精度浮点数,一个双精度浮点数,然后按顺序输出它们,并且要求在他们之间用一个空格分隔。输出浮点数时保留6位小数。输出字符、整数、单精度浮点数和双精度浮点数,之间用空格分隔。第三行是一个单精度浮点数;第四行是一个双精度浮点数。
2024-07-18 22:04:45
272
原创 05:输出保留12位小数的浮点数
总时间限制: 1000ms 内存限制: 65536kB。读入一个双精度浮点数,保留12位小数,输出这个浮点数。也只有一行,保留12位小数的浮点数。只有一行,一个双精度浮点数。
2024-07-18 22:00:51
201
原创 04:输出保留3位小数的浮点数
总时间限制: 1000ms 内存限制: 65536kB。读入一个单精度浮点数,保留3位小数输出这个浮点数。也只有一行,读入的单精度浮点数。只有一行,一个单精度浮点数。
2024-07-18 21:55:25
250
原创 C/C++常见头文件
命名空间:中的数学函数和常量位于std命名空间中,而中的函数和常量不属于任何命名空间。因此,中的函数和常量在C++中是可用的,而中的函数和常量在C和C++中都是可用的。在C++中,优先使用""来代替"",""主要用于C风格的输入输出。输入流 " cin>> " 和 输出流 " cout
2024-07-18 21:51:13
522
原创 03:对齐输出
只有一行,按照格式要求依次输出三个整数,之间以一个空格分开。读入三个整数,按每个整数占8个字符的宽度,右对齐输出它们。总时间限制: 1000ms 内存限制: 65536kB。只有一行,包含三个整数,整数之间以一个空格分开。
2024-07-18 21:46:55
144
原创 02:输出第二个整数
只有一行,共三个整数,整数之间由一个空格分隔。整数是32位有符号整数。总时间限制: 1000ms 内存限制: 65536kB。只有一行,一个整数,即输入的第二个整数。输入三个整数,把第二个输入的整数输出。
2024-07-18 21:43:36
268
原创 01:Hello, World!
对于大部分编程语言来说,编写一个能够输出“Hello, World!”的程序往往是最基本、最简单的。因此,这个程序常常作为一个初学者接触一门新的编程语言所写的第一个程序,也经常用来测试开发、编译环境是否能够正常工作。总时间限制: 1000ms 内存限制: 65536kB。一行,仅包含一个字符串:“Hello, World!现在你就需要完成这样一个程序。逗号后面有一个空格。
2024-07-18 21:41:07
206
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人