
初阶算法
文章平均质量分 56
Hayaizo
A Student
展开
-
Trie树,并查集的简单应用(AcWing)
Trie树,并查集的简单应用(AcWing)Trie 树,也叫“字典树”。顾名思义,它是一个树形结构。它是一种专门处理字符串匹配的数据结构,用来解决在一组字符串集合中快速查找某个字符串的问题。在每一个单词的结尾需要进行标记,统计个数现在对上述样例进行模拟。原创 2022-12-31 23:35:33 · 976 阅读 · 16 评论 -
滑动窗口(单调队列)
单调队列的简单应用原创 2022-12-26 13:53:58 · 398 阅读 · 11 评论 -
AcWing刷题(第二周)(链表,单调栈等......)
离散化,前缀和,链表,单调栈的简单应用原创 2022-12-25 22:22:49 · 253 阅读 · 11 评论 -
KMP算法(字符串匹配)(AcWing)
例如有图中,当长串和短串匹配成功了一段区间之后,在图中i和j+1的位置匹配失败了,按照常规思路我们是需要将短串向后移动一个位置继续重新开始匹配,但kmp就是利用好已经匹配好了的信息来减少匹配次数,就是令j=ne[j],从ne[j]的位置开始匹配,因为在图中我们用黑线画的部分其实是等效的,所以这一部分我们是不需要去匹配的,那么如何求这个ne[j]数组呢。如果不匹配,相当于将短的那个字符串向右移动一位继续匹配,但这样依次比较的效率是非常低的。而KMP则是利用已经匹配好的字符串这个有效信息来减少重复的匹配。原创 2022-12-25 13:43:26 · 617 阅读 · 15 评论 -
数组实现链表(AcWing)
然后断开head与原来第一个节点的连接,head指向插入的这个节点,最后idx++;让改节点的下一个节点指向现在的第一个节点(head)首先将新的节点开辟出来。原创 2022-12-22 15:22:14 · 361 阅读 · 15 评论 -
acwing刷题(一)
快速排序,归并排序,前缀和,差分,二分查找,二分答案的简单应用原创 2022-11-27 00:24:11 · 577 阅读 · 9 评论 -
C语言实现三子棋(会堵棋,加强版)智能AI博弈
三子棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉棋、一条龙、井字棋等。游戏分为双方对战,双方依次在9宫格棋盘上摆放棋子,率先将自己的三个棋子走成一条线就视为胜利,而对方就算输了,但是三子棋在很多时候会出现和棋的局面。原创 2022-11-10 22:24:47 · 1879 阅读 · 19 评论 -
OpenJudge NOI 1.11 05:派
很典型的一道二分答案题目,首先对题目进行分析:如果不考虑其他的条件(必须一个派的一块,不能由几个派的小块拼成;可以是一整个派),那么每个人可以分到的最大体积就是->原创 2022-11-16 10:53:41 · 572 阅读 · 8 评论 -
基础算法:离散化的基本应用
离散化是程序设计中一个常用的技巧,它可以有效的降低时间复杂度。其基本思想就是在众多可能的情况中,只考虑需要用的值。离散化可以改进一个低效的算法,甚至实现根本不可能实现的算法。要掌握这个思想,必须从大量的题目中理解此方法的特点。例如,在建造线段树空间不够的情况下,可以考虑离散化。有些数据本身很大, 自身无法作为数组的下标保存对应的属性。如果这时只是需要这堆数据的相对属性, 那么可以对其进行离散化处理。当数据只与它们之间的相对大小有关,而与具体是多少无关时,可以进行离散化。原创 2022-11-25 01:05:26 · 522 阅读 · 2 评论