平衡树\(Splay\) 前言 个人见解不代表我讲的一定正确,请参考其它文献阅读 (就当我瞎扯淡就行) 前置知识 二叉搜索树 简单叙述一下,具体操作请转至其它博客或oi.wiki 二叉搜索树,也称也称二叉排序树或二叉查找树,是一种基于二叉树的树形结构,满足该树为二叉树且中序遍历有序的性质 简单解释一 ...
本文发布于博客园,会跟随补题进度实时更新,若您在其他平台阅读到此文,请前往博客园获取更好的阅读体验。 跳转链接:https://www.cnblogs.com/TianTianChaoFangDe/p/18995014 开题情况 7.15牛客多校1 : 4题 - EGKL 7.17牛客多校2 : 5 ...
目录 目录目录队列的概念假溢出问题循环队列的实现1.以数组为基础实现循环队列2.以链表为基础实现循环队列两个栈实现队列 队列的概念 队列(Queue)和栈类似,相同点是都属于线性结构,不同点是栈遵循“后进先出”原则,而队列遵循“先进先出”的原则,也被称为“FIFO”结构,就是“First Input ...
动态规划 背景: 从递归到记忆化搜索再到动态规划: 递归思路: 方法论 方法一:循序渐进 通过引入动态规划的逻辑,来解决动态规划的问题:首先从递归出发,写出递归表达式,根据递归表达式,得到记忆化搜索,再有记忆化搜索翻译为递归(去掉递归中的递的过程)(结合198.打家劫舍来理解): dfs(i,j) ...
[USACO16JAN] Subsequences Summing to Sevens S https://www.luogu.com.cn/problem/P3131 方法 1: 暴力枚举端点并求和时间复杂度 \(50000^3\) 会 TLE 方法 2: 暴力枚举端点并前缀和优化时间复杂度 \( ...
题目 通过键盘输入一个包括 '(' 和 ')' 的字符串string ,判断字符串是否有效。要求设计算法实现检查字符串是否有效,有效的字符串需满足以下条件: A. 左括号必须用相同类型的右括号闭合。 B. 左括号必须以正确的顺序闭合。 C. 每个右括号都有一个对应的相同类型的左括号。 题目分析 使用 ...
回溯算法 背景 电话号码的字母组合: 暴力循环枚举: for(i in "abc") for(j in "def") 组合; 可以得到有3*3=9种。 问题:如果构成的字符串长度为3或长度为一个参数n呢? 可以看出,单纯的循环”表达能力有限“,再举一个简单例子: {1,2,3,4}两两组合有多少种组 ...
设计一个进制转换程序,使用顺序栈设计一个把十进制数转换为十六进制数的接口,实现当通过键盘输入一个非负的十进制数,可以在终端输出对应的十六进制数。 ...
【字节跳动高频面试题】不超过 N 的最大数拼接 ✨ 题目描述 给定一个按 非递减顺序 排列的数字字符数组 digits(如 ["1","3","5","7"]),你可以任意次数使用这些字符,拼接成一个正整数。 请返回:所有能拼出且 ≤ 给定整数 n 的正整数中,值最大的那个。 示例 输入: ...
又是战犯的一周啊。 再见宣言真好听。 A.Content Too Large translation: 判断是否有 \(\sum_{i=1}^n A_i\le M\)。 无脑题,不给代码了。赛时除了手速有点慢以外没啥别的问题。 B.cat 2 translation: 给定 \(n\) 个字符串 \ ...
二叉树篇 定义: 二叉树是一种树形结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。 性质: 每个节点最多有两个子节点。 子节点的顺序不能颠倒(即左子树与右子树有严格区分)。 二叉树的第 i 层最多有 2^(i-1) 个节点。 深度为 k 的二叉树最多有 2^k - 1 个节点。 常见类型 ...
/** * @file name : SeqStack.c * @brief : 该程序通过堆内存实现顺序栈元素的初始化、入栈、出栈、遍历,另外为了提高可移植性,所以顺序栈中 * 数据元素的类型为DataType_t,用户可以根据实际情况修改顺序表中元素的类型 * @author : MINDSET ...
高斯消元是一种在 \(O(n^3)\) 的时间复杂度下解线性方程组的算法,方程组形如: \[\left\{ \begin{aligned} &a_{1,1}x_{1}+a_{1,2}x_{2}+\dots+a_{1,n}x_{n}=b_1\\ &a_{2,1}x_{1}+a_{2,2}x_{2}+\ ...
树状数组 树状数组,又称二叉索引树(Binary Indexed Tree,BIT) 是一种用来维护序列动态前缀和的数据结构 一、找序列中第k小: P1168 中位数 - 洛谷 先离散化原数组,然后运用到树上倍增找第k小 //离散化 cin>>n; for(int i=1;i<=n;i++){ ci ...
实现一个双向不循环链表的接口,可实现链表的增删改查
特别说明:此接口实现的双向链表中首结点的直接前驱指针指向NULL,并不是头结点的地址 ...
link 思路 显然只要移出上下相同的,就可以把前面都改相同了。因为只能从右往左,所以找到最右边符合条件即可。 这题样例很详细,基本上看完后就有思路了。 4 1 3 1 4 4 3 2 2 说明同行连着的可以把后面那个挪对角就可以了。同理可得出同行一奇一偶都可以。 6 2 1 5 3 6 4 3 2 ...
实现一个单向循环链表的接口,可实现链表的增删改查
特别说明:此接口实现的单向循环链表中尾结点的指针域指向头结点后面的首结点的地址,并不是头结点的地址 ...
前言 《算法图解》是一本入门算法的优秀读物,以图文并茂的方式讲解了各种基础算法。笔者最近在学习此书,特此记录学习笔记。本篇笔记主要记录第一章的核心内容,包括什么是算法、二分查找的思想及其实现、以及衡量算法效率的大O表示法。 一、什么是算法 算法(Algorithm)是一组用于完成特定任务的指令。简单 ...
ACM学习内容顺序规划 〇、大致思路 想用书的话可以用书,不用也行,推荐几本:《算法竞赛进阶指南》、《信息学奥赛一本通》、《深入浅出程序设计竞赛》(洛谷首页推荐的书,也不赖)、《算法竞赛入门经典》(刘汝佳编著,不过有点老了)(记得根据自己需求选择) 可以上oiwiki学一些知识和算法:oi-wiki ...
/******************************************************************** * file name: LnList.c * author : MINDSETT@163.com * date : 2025/6/24 * function ...