MySQL 知识点总结 MySQL 基本介绍 MySQL 是一种关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品,由于其体积小、速度快、成本低、开源等优点,使其在 Web 开发中尤其受欢迎。 MySQL 官网 MySQL 客户端连接 1mysql -u [用户名] -p 示例: 以 root 用户登陆: 1mysql -u root -p MySQL Command 介绍 MySQL 2023-04-10 数据库 #SQL #MySQL
素数筛 引入 如果我们想要求出小于 n 的所有素数,一个很自然的想法就是从 1 到 n 进行遍历,然后对素数进行记录,但这样的话时间复杂度为 \(O(n^{\frac{3}{2}})\) ,当 n 足够大的时候这个算法是较慢的,有没有更高效的算法呢? 接下来我们介绍最常见的两种素数筛,以 Leetcode 模版题为例:计数质数 埃氏筛 埃氏筛也叫埃拉托斯特尼筛法,考虑任意素数 x ,则 x 的所有倍数都是 2023-04-02 数据结构与算法 #素数 #数论 #素数筛 #埃氏筛 #欧式筛
讲解 C++ 匿名函数 匿名函数,也叫 Lambda 表达式,是 C++ 11 提出的特性,匿名函数能使得我们的程序更加灵活轻便。 基本语法 1[capture](para) -> returnType { body } capture :闭包 para :参数 returnType :返回类型 body :函数体 示例: 12auto fun = [](int x, int y) 2023-03-30 C/C++ #C++ #匿名函数
树状数组和线段树 树状数组和线段树是两种常用的数据结构,其可以大大提升数组的区间查询的效率,同时也保证了数据修改的灵活度。 一般数组 前缀和数组 树状数组 线段树 单点查询 \(O(1)\) \(O(1)\) \(O(logn)\) \(O(logn)\) 区间查询 \(O(n)\) \(O(1)\) \(O(logn)\) \(O(logn)\) 单点修改 \(O(1)\) \(O(n)\ 2023-03-30 数据结构与算法 #线段树 #树状数组 #区间查询
std::bitset 讲解 介绍 std::bitset 是 C++ 提供的一种 n-bit 固定大小序列的模版,可以用于标准逻辑运算,并且可以与字符串和整数相互转换,还可以使用标准流输出。 12template< std::size_t N >class bitset; 模版形参 N :要为 bitset 分配储存的 bit 位数 头文件:<bitset> 构造方法 12345678910111 2023-03-08 C/C++ #C++ #位运算 #STL
链式前向星介绍 什么是链式前向星? 链式前向星是一种常用的图存储结构,其思路类似于邻接链表法,只是实现方式有所不同,链式向前星更像是用数组模拟链表。 与一般的邻接链表法不同,链式向前星储存的图的每条边都有编号。 以下是链式前向星的存储结构: cnt :用来记录当前所有边的数量 first 数组:用来存储从某个节点出发的第一条边,例如 first[0] == 3 可以得出从 0 号节点出发的第一条边的编号为 3 2023-03-06 数据结构与算法 #图论 #链式前向星
ICG 游戏博弈问题与 SG 定理 ICG 游戏 定义 ICG 游戏是博弈游戏的一种,其定义如下: 游戏由两人参加,两人轮流做出决策 当有一人无法决策即无论如何都必败时对手胜出,且 ICG 游戏一定会在有限步内完成,游戏没有平局 游戏的状态转移是单向的,同一个状态只能达到一次 必胜点和必败点 必胜点 N ( Next ) 和必败点 P ( Previous ) 描述的是某个游戏状态当前的胜负。 若当前状态为必胜点 N ,则先手必 2023-03-02 数据结构与算法 #SG 定理 #SG 函数 #组合博弈 #组合数学 #记忆化搜索 #位运算
记忆化 DFS 引入 记忆化 DFS,顾名思义,就是带有记忆的深度优先搜索。 总所周知,用程序实现 Fibonacci 数列求值有两种常见方式: 通过迭代即非递归的方式: 12345678910111213int Fibonacci(int n) { if (n == 1 || n == 2) { return 1; } int pre = 1, n 2023-02-26 数据结构与算法 #记忆化搜索 #DFS
二分匹配问题 —— 匈牙利算法 问题介绍 什么是二分图? 对于图 \(G(V,E)\) 而言,若 \(G\) 中的所有点可以划分为两个子集 \(G_1\)、\(G_2\) ,且图中每条边 \(e\) 关联的两个顶点都属于不同的顶点子集,这样的图我们称为二分图( Bipartite Graph ),或者二部图。 最大匹配问题和最小点覆盖问题 什么是最大匹配问题?给定一个二分图 \(G(V,E)\),若 \((a_i,b_j) \ 2023-02-25 数据结构与算法 #DFS #二分匹配 #匈牙利算法 #二分图博弈
LLDB 快速入门 如果调试是删除 bug 的过程,那么编程就是引入 bug 的过程。 —— Edsger W. Dijkstra LLDB 是什么? LLDB( Low level Debug )是 MacOS 默认进行调试 C/C++ 程序的调试工具,能帮开发者进行更加丰富地流程控制和栈帧数据监测。 简言之,LLDB 是一个有着 REPL 的特性和 C++ 、Python 插件的开源调试器。 在此,我们以几个简 2023-02-22 C/C++ #C++ #调试器 #LLDB