自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (2)
  • 问答 (2)
  • 收藏
  • 关注

原创 迭代加深搜索、启发式搜索、A*、IDA

迭代加深搜索(IDDFS)是深度优先搜索,与普通的dfs不同的是,每次深搜都会有搜索的最大深度限制,如果没有找到解,那么就增大深度,再进行深搜,如此循环直到找到的解为止,这样可以找到最浅层的解。IDDFS适和求解:搜索深度较深,但正确的解再较浅的深度的问题。IDDFS的使用前提是:一定要有解。A*算法,A*(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法。IDA*算法是:基于迭代加深的A*算法。

2024-10-31 13:42:44 917

原创 深搜优化、深搜进阶题目(A、和为K)

给定一个含 N 个不同数的数列,任意从数组中选出若干不同的数(也可以选 1 个),使其和为 K ,请问有多少种不同的方案。

2024-10-24 12:58:47 386

原创 搜索优化、搜索进阶

搜索算法的时间复杂度大多都是指数级的,难以满足对程序时间的限制要求,为使降低时间复杂度,对深度优先搜索可以进行一种优化的基本方法——剪枝。搜索的进程可以看做是从树根出发,遍历一棵搜索树的过程,所谓剪枝,就是通过某些判断,避免一些不必要的遍历过程,形象的说:就是减去搜索树中的某些枝条。如:下图是4个数选3个数的组合的搜索树。所谓双向搜索指的是搜索沿两个方向同时进行:正向搜索:从初始节点向目标结点方向搜索:逆向搜索:从目标结点向初始结点方向搜索:当两个方向的搜索生成同一子结点时终止此搜索过程。

2024-10-17 13:29:15 780

原创 初识JAVA

什么是JAVA呢,让我们来看看百度百科的介绍:Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有简单性、面向对象、、平台独立与可移植性、、动态性等特点。[2]Java可以编写、Web应用程序、和应用程序等。——百度百科。

2024-10-14 13:38:35 794

原创 倍增、RMQ、LCA及树上差分

倍增法(英语:binary lifting ),顾名思义就是翻倍。他能够使线性的处理转化为对数级的处理,大大的优化时间复杂度。这个方法在很多算法中均有应用,其中最常用的是:RMQ 问题和求 LAG(最近公共祖先)。倍增思想是一种十分巧妙的思想。“倍增”二字体现在它每次将当前的已知结果或考察范围扩大一倍。正是由于这个原因,它的时间复杂度降低了很多,一般是将一个系数 N 变为。

2024-10-12 13:03:04 490

原创 树形数组及应用

树状数组是一个查询和修改复杂度都为的数据结构。主要用于:数组的单点修改、区间求和。在使用前缀和求区间和的算法中,如果可以做到在的时间复杂度内查询任意的区间和,但是如果要修改其中一个点的值,那么需要修改一遍前缀和数组,修改的时间复杂度是。

2024-09-27 13:47:49 501

原创 AC自动树

上期我们学习了Trie 字典树(),本期我们将学习AC自动树。

2024-09-26 13:47:20 383

原创 Trie 字典树

Trie 字典树指的是:某个字符串集合构造的有根树。由于 Trie 字典树,较好的利用了字符串的公共前缀,因此有效的节约存储空间。Trie 树典型的应用是:用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无畏的字符串比较,查询效率比哈希树高。它有3个基本性质:A、根结点不包含字符,除根节点外每一个结点都只包含一个字符;

2024-09-26 13:29:45 359

原创 KMP算法

next[ j ] 代表字符串 p 中前 j 个字符的最大相同前缀和后缀的值。特别注意:这个值不含本身,比如字符串“ ABABA ” 最大相同前缀和后缀的值是 3,而不是 5,因为任何字符串如果取自身,那么从前缀和后缀必定相等。因此 next[ 0 ] = next[ 1 ] = 0。

2024-09-26 13:01:44 908

原创 哈希——离散化

离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。例如:原数据:1,999,100000,15:处理后:1,3,4,2;原数据:{100,200},{20,50000},{1,400};处理后:{3,4},{2,6},{1,5};离散化本质上可以看成是一种特殊的哈希,其保证数据在哈希以后仍保持原态的全偏序关系,用于解决:影响最终结果只有元素之间的相对大小关系这一类的问题。

2024-09-25 12:27:32 403

原创 哈希——哈希表

上期我们学习了哈希——字符串哈希(),本期我们将学习哈希中的哈希表。

2024-09-24 13:29:52 685

原创 哈希——字符串哈希

哈希算法

2024-09-24 12:50:53 1678

原创 图论——基础

本期我们将学习图论的基础。

2024-06-06 13:23:37 592

原创 并查集的应用——生成最小树

上期我们学习了并查集的基础(

2024-05-23 13:06:36 193

原创 并查集——基础篇

并查集是一种树型的数据结构,用于处理不相交的合并及查询问题。并查集的思想是用一个数组表示了整片森林(parent),树的结点唯一标识了一个集合,我们只要找到的某个元素的树根,就能确定它在哪个集合里。

2024-05-20 13:12:49 825

原创 CSP备考---2023CSP-S错题整理

题目要求的范围是100到1A0,其中满足f(n)=9的有108,117,126,135,144,153,162,171,180这9个数。满足f(f(n))=9,即f(n)=的有1E9,1F8这两个数,100到1A0范围内不存在计算3次以上f函数后得到9的数,因此答案为9+2=11。【解析】选第一个数字时,可以从1,2,3,4中挑选一个,有4种方案,第二个数字可以从0,以及1,2,3,4中剩余的3个数中挑选一个,有4种方案,依此类推,第三、四个数分别有3种和2种方案,总方案数为4*4*3*2=96。

2024-05-19 10:44:00 1351

原创 CSP备考---CSP-j2023错题整理

对于每条从根节点到叶子节点的路径,用 0表示向左走,用 1表示向右走,得到对应字符的哈夫曼编码a(1111),b(1110),c(101),d(100),e(110),f(0)【解析】只选一个练习时间段的有7种,选2个练习时间段的有10种,选3个联系时间段的有1 种,故总数为18 种。3.将原序列中的a和b删除,并将新生成的节点插入到序列中,得到新的字符序列{c,d,e,f,ab}。1.将所有字符按照出现频率从小到大排序,得到字符序列 {a,b,c,d,e,f}【解析】逢8进1,对齐计算就好了。

2024-05-17 17:12:14 1790

原创 CSP备考---2023大湾区比赛易错题

17.错 因为12300400000超过了int的范围。14.B有三种情况:1男2女、2男1女、3女。

2024-05-16 12:07:58 236

原创 CSP备考---位运算

本期我们将学习位运算,与本期类型的考点(二进制转换)。

2024-05-14 13:25:01 775

转载 C++常见十种排序方式

选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。选择排序是不稳定的排序方法。每次从待排序列中选出一个最小值,然后放在序列的起始位置,直到全部待排数据排完即可。实际上,我们可以一趟选出两个值,一个最大值一个最小值,然后将其放在序列开头和末尾,这样可以使选择排序的效率快一倍。

2024-05-13 17:51:44 1561

原创 2022CSP-S易错题解析

i的取值分别是0、5、6、7、8、13,其中i=5时,j++运行3次;i=6时,j++运行2次;i=7时,j++运行1次;i=13时,j++运行4次。共10次。

2024-05-11 13:10:50 344

原创 CSP-j 计算机硬件

计算机系统由计算机硬件和软件两部分组成。硬件包括中央处理器、存储器和外部设备等;软件是计算机的运行程序和相应的文档。计算机系统具有接收和存储信息、按程序快速计算和判断并输出处理结果等功能。

2024-05-10 12:06:57 910 1

原创 CSP-j 2022csp-j完善程序易错题

对。

2024-05-10 12:06:24 188

原创 CSP-j/s 原码 补码 反码

补码加法:在计算机中,凡是带符号数一律用补码表示,运算结果自然也是补码。其运算特点是:符号位和数值位一起参加运算,并且自动获得结果(包括符号位与数值位)。缺点:0有两个表示,分别为正零(00000000)和负零(10000000),各计算机计算带来不便。反码:首位为符号位,其它位分正数和负数两种情况。补码正数:所有位和反码一样,当然也和原码一样。反码负数:除了符号位和原码一样,其它位相反。补码:分正数和负数两种情况。数在机器中的表示有以下几种:原码、反码、补码。即:两数补码的和等于两数和的补码。

2024-04-29 17:06:46 225

原创 CSP-j2023提高组

16、17、TT本题算是计算量不大的计算题,如果了解f是计算三角形面积的海伦公式,会更容易做,因为19和20都是直角三角形;不知道是计算面积,也可以硬算。

2024-04-29 12:52:36 140

原创 CSP-j2023初赛

易错题目

2024-04-25 13:14:18 142

原创 CSP-j/s 逻辑运算

CSP-j/s 逻辑运算

2024-04-24 17:37:41 1245

原创 CSP-j/s进制转换易错题

进制转换易错题(一)

2024-04-24 13:35:58 306

原创 STL-set集合

STL-set集合

2024-03-22 13:29:04 869 1

原创 STL-deque双向队列 & list链表 的用法

STL-deque双向队列 & list链表 的用法

2024-03-21 13:28:49 942 1

原创 STL---迭代器

STL---迭代器

2024-03-20 13:08:16 856 1

原创 STL---vector(四)/STL---迭代器(一)

我们应该都学过swap函数的用法。就是将n和m两个数值交换,在vector中也可以使用swap函数。这期我们将学习其余的相关函数的用法(我们可以发现n和m的值全部交换了。vector的使用及相关函数讲解。

2024-03-14 17:21:32 291 1

原创 STL---vector(三)

STL---vector(三)

2024-03-13 13:23:21 408

原创 STL---vector(二)

STL---vector(二)

2024-03-12 17:50:29 431 1

原创 STL---vector(一)

STL---vector(一)

2024-03-12 13:00:53 196 1

原创 C++入门到入“坟”(二)

c++

2024-02-29 16:52:00 359

原创 C++入门到入“坟”(一)

C++

2024-02-29 12:42:47 252

原创 网址查询器安装程序(版本号:1.0.0-1.1.0)

网址查询器安装程序

2022-09-11 12:21:25 126 1

原创 《日本正遭受美国的导弹打击》

《日本正遭受美国的导弹打击》

2022-04-26 17:05:59 81

原创 好人与坏人的区别

好人与坏人的区别

2022-04-14 15:59:09 124

CSP-j2023初赛

CSP-j2023初赛

2024-04-25

DEV C++编译器下载

DEV C++编译器下载

2022-03-31

Windows 7,、8、10、11版的VS Code

Windows 7,、8、10、11版的VS Code,其他版本可到官网下载https://code.visualstudio.com/

2022-03-19

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除