04 2021 档案
摘要:KMP 算法最基本的应用场景是字符串的模式匹配,然而其应用远不止于此,在匹配字符串的过程中用到的一部分思想本身在一些场景中也可以得到应用,比如下面的这道求循环节的题。 题目大意就是给出一个字符串,然后求它的某个长度的前缀是否由循环节组成,若有则输出这个前缀的长度和循环节个数。 附上题目链接:[POJ
阅读全文
摘要:同样是栈相关的一道题,来自《剑指Offer》 栈的压入、弹出序列 https://www.acwing.com/problem/content/description/40/ 题目如下: 输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。 假设压入栈的所有数字均
阅读全文
摘要:在刷栈相关的题目时碰到这样的一题:先附上链接https://www.acwing.com/problem/content/description/3305/ 表达式求值 题目是给定一个表达式,其中运算符仅包含 +,-,,/(加 减 乘 整除),可能包含括号,请你求出表达式的最终值。 其中: 数据保证
阅读全文
摘要:寒假自学了一点数据结构,最近又看了《挑战2》来复习了以下基本的数据结构,以此随笔简单记录之。 数据结构 Intro 数据结构是计算机中存储,组织数据的方式,通常来说,它并不是单指数据集合本身,而是包含以下内容: 数据集合,如数组,结构体等。 操作,比如栈有压栈,弹出等操作。 规则,规定了某种数据结构
阅读全文
摘要:Intro 搜索差不多也可以说算是一种暴力枚举策略,从初始状态开始,逐渐扩大寻找范围,直到找到答案。但是和直接枚举相比减少了一些无效状态,提高了效率,在数据规模不大时搜索仍然是一种有效的办法。根据搜索的特性可以分为深度优先搜索和广度优先搜索。 深度优先搜索 在枚举某种填空方式时,我们先枚举这个空所有
阅读全文
摘要:Definition 贪心算法(英语:greedy algorithm),又称贪婪算法,是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法。简单来说就是模拟一个贪心的人的想法,每一步都只顾眼前的利益,取得局部的最优解,而局部最优解加起来能得到全局最
阅读全文
摘要:struct Bigint{ int len,a[MAXN]; Bigint(int x = 0){ memset(a,0,sizeof(a)); for(len = 1;x;len++) a[len] = x%10,x/=10; len --; } int &operator [](int i){
阅读全文
摘要:A Way To Keep Track Of The Information Used Before 在做第一个 project:Hog 的时候看到的一个小细节,也算是没见过的一点新东西吧。 先上代码 代码 def announce_lead_changes(prev_leader=None): "
阅读全文
摘要:short_circuit: 在看 CS61A 的 textbook 的时候看到了这个特性,大概是如果考虑表达式 T and a,那么这个表达式的值就和 a 相同,而若考虑表达式 F and a,那么则不需要看 a 的值就可以判断这个表达式的值为 F。同理,若考虑 T or a,那么 a 的值不用看
阅读全文