摘要: 一、随机数函数: rand()函数 在C++中可以用rand()函数来产生一个0~RAND_MAX之间的“伪随机数”。 需要导入一个库: include<cstdlib> 1.什么是RAND_MAX: 它一般是个定值,且大小不可修改,它的大小取决于你的编译器和操作系统,如Linux最大可到21474 阅读全文
posted @ 2022-09-16 22:47 小坦js 阅读(15877) 评论(2) 推荐(5) 编辑
摘要: 🥥二进制位运算基础及其应用: 🍩一、基本位运算符: 1.& 按位与:(从左到右)二进制中对应位都是1则为1,否则为0; 2. | 按位或:(从左到右)二进制中对应位有一个是1则为1,否则为0; 3. ^按位异或:(从左到右)二进制中对应位相同则为0,不同为1; 因此我们可以得出异或的一个特性:x 阅读全文
posted @ 2022-08-28 18:33 小坦js 阅读(586) 评论(0) 推荐(1) 编辑
摘要: 定义 数据结构中对于稀疏图的定义为:有很少条边或弧(边的条数|E|远小于|V|²)的图称为稀疏图(sparse graph),反之边的条数|E|接近|V|²,称为稠密图(dense graph)。此定义来自百度百科,实际上是一种朴素的理解,简单来说边越多,图就越稠密(其中|V|是结点数的意思,有时也 阅读全文
posted @ 2022-10-14 18:58 小坦js 阅读(1566) 评论(0) 推荐(1) 编辑
摘要: 介绍: STL中的优先队列本质上就是基于堆实现的,所以可以实现堆的很多操作。 优先队列具有队列的所有特性,包括基本操作,只是在这基础上添加了内部的一个排序 头文件:#include<queue> 相关函数: 和队列基本操作相同: top 访问队头元素 empty 队列是否为空 size 返回队列内元 阅读全文
posted @ 2022-08-31 22:42 小坦js 阅读(446) 评论(0) 推荐(0) 编辑
摘要: 堆的定义: 1. 堆是一棵完全二叉树。 2. 大根堆: 堆的每一个子树的父亲永远大于其左孩子和右孩子,如下图: 3.小根堆: 堆的每一个子树的父亲永远小于于其左孩子和右孩子。 堆的性质: 1. 小根堆的堆顶永远存放着最小值,大根堆的堆顶永远存放着最大值 2. 堆的每一层上的数不一定比下一层全部要小或 阅读全文
posted @ 2022-08-31 22:31 小坦js 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 哈夫曼编码(Huffman code) 引言: 哈夫曼编码是一种压缩编码的编码算法,是基于哈夫曼树的一种编码方式。(哈夫曼树详见:哈夫曼树 ) 哈夫曼编码跟 ASCII 编码有什么区别?ASCII 编码是对照ASCII 表进行的编码,每一个字符符号都有对应的编码,其编码长度是固定的。而哈夫曼编码对于 阅读全文
posted @ 2022-08-28 23:12 小坦js 阅读(1603) 评论(0) 推荐(0) 编辑
摘要: 哈夫曼树 一、定义: 给定N个权值作为N个叶子结点,构建一颗二叉树,使该树的WPL(带权路径长度)最小,即为一颗哈夫曼树(又称最优二叉树)。 二、相关知识: 路径和路径长度(L): 树中的每一个分支即是路径,其中一个结点到根节点的路径总数被称为路径长度。 设根节点的层数为1,则第n层的结点的路径长度 阅读全文
posted @ 2022-08-28 19:28 小坦js 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 马走日 题目描述: 马在中国象棋以日字形规则移动。 请编写一段程序,给定n×m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。 【输入】 第一行为整数T(T < 10),表示测试数据组数。 每一组测试数据包含一行,为四个整数,分别为棋 阅读全文
posted @ 2022-08-21 21:00 小坦js 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1263 题目描述: Time Limit: 2000MS; Memory Limit: 65536K; 夏天来了~ Joe经营着一个不大的水果店.他认为生存之道就是经营最受顾客欢迎的水果.现在他想要一份水 阅读全文
posted @ 2022-08-21 18:46 小坦js 阅读(56) 评论(0) 推荐(0) 编辑