- 博客(94)
- 资源 (1)
- 收藏
- 关注
原创 进阶 MySQL 学习笔记(借鉴黑马程序员)
存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。介绍索引(index)是帮助 MySQL高效获取数据的数据结构有序在数据之外,数据库系统还维护着满足特点查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。
2023-07-24 18:02:00
395
原创 2023牛客五一集训派对day2部分题解
取任意一个非叶子节点作为根,然后求一个dfs序,并把所有叶子节点按dfs序排序,记为 l1, l2...ls 先假设 s 为偶数,那么构造的 s / 2 可以为 i -> s / 2 + i,能保证每条链都会被覆盖到。将树建成一个无向图,然后对度不为1的某个点进行深搜遍历,记录度为1的叶子节点的序号,如果叶子节点为奇数,那么在数组最后加上一个根节点的序号。所以我们只要求一个dfs序,然后根据根左子树的叶子节点和根右子树的叶子节点逐一配对,如果叶子节点是奇数时,随便找个节点与其匹配就可以了。
2023-05-01 02:32:21
971
3
原创 2023牛客五一集训派对day1部分题解
此时可以把 a 和 b 都看作一位数(类似于十进制), 那么我们可以把字典序的比较看作每一位上的比较, 也就是说此时比较的就是各位的数(a, b)乘上对应位的权值。sum1 对应 2k - 1 位 k = 1, 2, 3...按 x 进制表示则有位数越小, 位数就越考前, 权值也就越大。我们可以设 s1 = a + b, s2 = b + a。sum2 对应 2k 位 k = 1, 2, 3...的字典序, 故直接比较 s1 - s2 即可。对应的权值总和为 sum1,对应的权值总和为 sum2,
2023-04-30 00:09:16
1108
原创 线段树(单点修改+询问区间最大子段和)
题目大意:给出一个动态的区间,以及 m 次询问,每次询问给出一段区间 [l, r],要我们求出这段区间中。看到这种单点修改和区间查询的问题,我们一般会想到线段树来求解。对于这道题来说,我们可以将最原始的线段树修改成如下的几个参数。建树和修改的过程跟普通线段树没什么太大区别。于是我们就可以像这样维护连续的子区间和了。如果还是理解不了可以自己画图试试。
2023-03-07 20:29:51
320
原创 基础 MySQL 学习笔记(借鉴黑马程序员MySQL)
数据库是存储数据的仓库,数据是有组织的进行存储(DataBase)数据库管理系统是操纵和管理数据库的大型软件(DataBase Management System)SQL是操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准 (Structured Query Language)
2023-02-28 20:25:39
572
2
原创 同花顺2023届春招内推
同花顺是国内首家上市的互联网金融信息服务平台,如果你对互联网+金融感兴趣,如果你有志向在人工智能方向发挥所长,如果你也是一个激情澎湃的小伙伴,欢迎加入我们!岗位类别:Java开发、前端开发、移动端开发、C++开发、产品经理、运营、测试等岗位均有HC。同学们可关注“同花顺”同名微信公众号了解春招一手资讯。同学们可关注“同花顺”同名微信公众号了解春招一手资讯。第一场2月25日,第二场3月10日。同花顺2023届春招开始啦!
2023-02-13 17:12:14
528
原创 Linux 学习笔记(借鉴黑马程序员Linux课程)
学习Linux,本质上是学习在命令行下熟练使用Linux的各类命令。命令行:即Linux终端(Terminal),是一种命令提示符页面。以纯“字符”的形式操作系统,可以使用各种字符化命令对系统发出操作指令。命令:即Linux程序。一个命令就是一个Linux的程序。命令没有图形化页面,可以在命令行(终端中)提供字符化的反馈。
2023-01-09 23:34:51
1963
2
原创 AtCoder Beginner Contest 278 E - Grid Filling(题解 三维前缀和)
我们发现题目的数据给的很小,甚至可以(N ^ 3)。所以我们想到,单独统计矩阵内某一个数字的个数就是用二维前缀和维护的,得到矩阵外的个数也就是直接拿右下角的最大前缀和,减去维护的矩阵就可以了。接下来我们推广一下,对每个数字都这样维护一个二维前缀和,也就多了一维。给你一个 H * W 的矩阵,每个单元格内包含一个不大于 N 的数,再给一个小矩阵 h * w,从左上角开始一次移动一格,直到右下角与大矩阵边缘重合时结束。请你求出他在每个点围成的小矩阵之外所有单元格的数字种类个数总和。
2022-11-20 01:14:01
496
1
原创 数据结构学习笔记 - 带权并查集(食物链题解)
前言前言并查集的概念:将编号分别为 1~n 的 n 个对象划分为不相交集合,在每个集合中,选择其中某个元素代表所在集合。并查集的基本应用是集合问题。在加上权值之后,利用并查集的合并优化和路径压缩,可以对权值所代表的具体应用进行高效的操作。查询的优化(路径压缩)普通的查询函数是查询元素 i 所属的集需要搜索路径到根节点并返回,这样显然会浪费很长时间。如果我们在返回时顺便把 i 所属的集改为根节点,那么下次再搜的时候可以直接 O(1) 得到结果。带权并查集除了并查集的基本应用 - 处理集合问题。
2022-11-12 15:17:48
875
原创 机器学习笔记 - sklearn随机森林(集成学习)(kaggle 实战 Space Titanic 入门)
随机森林是通过集成学习的思想将多棵决策树集成起来的一种算法,以期获得更准确和更稳定的预测能力。随机森林的基本单元是决策树。随机森林属于机器学习的一个分支--集成学习方法,或者说随机森林就是集成学习思想的产物。集成学习是一种把多个模型整合起来,互相取长补短,避免局限性,发挥长处,实现更好的分类和回归预测的机器学习方法。它生成多个分类器,各自独立地学习和做出预测,集成学习把这些分类器整合起来。随机森林将许多棵决策树整合成森林,是一种利用多棵树对样本进行训练并预测的分类器。
2022-10-31 23:08:25
1021
原创 2020年第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海)
每次找到的位置我们都可以计算出左边所用的时间和右边所用的时间,如果左边比右边大,说明左边走的慢可以往左移动一些,反之就是往右。因为题目要求最多能修改 n * m / 2 向下取整次,我们可以判断 A 和 B 之间有几个不同的位置并统计个数,最终如果不同的个数不超过 n * m / 2,那就可以直接修改。这道题是个 dp,我们设 dp[n] 表示在 k 的情况下的答案,那么考虑 n 个数中最小的那个数的放置情况,显然只能放在前 k 个数中,于是枚举这个数的位置。在圆上的不同点之间的距离可以分为两类。
2022-10-29 13:38:06
771
原创 图论学习笔记 - Tarjan 算法与有向图连通性
前言前言给定有向图 G = (V, E),若存在 r ∈ V,满足从 r 出发能够到达 V 中所有的点,则称 G 是一个“流图”(Flow Graph),记为(G, r),其中 r 称为流图的源点。与无向图的深度优先遍历类似,我们也可以定义“流图”的搜索树和时间戳的概念:在一个流图(G, r) 上从 r 出发进行深度优先遍历,每个点只访问一次。所有发生递归的边 (x, y)(换言之,从 x 到 y 是对 y 的第一次访问)构成一棵以 r 为根的树,我们把它称为流图 (G, r) 的搜索树。
2022-10-24 18:14:01
1019
原创 机器学习笔记 - sklearn决策树(kaggle 实战 Titanic 入门)
这是 Kaggle 上非常典型的一道入门题,可以用很多机器学习或者深度学习甚至是一些“奇淫技巧”的方法来解决。因为我是一个初学者,所以我希望在尽可能提高正确率的情况下,用更简单的方法。如果这也能帮助到你,那将是我莫大的荣幸。
2022-10-15 16:10:40
1290
原创 算法学习笔记 - 网络流初步
网络流是图论中一个博大精深的分支。本篇博客只希望让大家建立对网络流的初步认识,内容会比较浅显。一个网络 G = (V, E) 是一张有向图,图中每条有向边 (x, y)∈E 都有一个给定的权值 c(x, y),称为遍的容量。特别地,若 (x, y) 不属于 E,则 c(x, y) = 0。图中还有两个指定的特殊节点 S∈V 和 T∈V(S≠T),分别称为源点和汇点。设 f(x, y) 是定义在节点二元组 (x∈V, y∈V) 上的实数函数,且满足:1. f(x, y) ≤ c(x, y)2. f(x, y)
2022-09-12 17:11:50
696
原创 关于优快云编程竞赛第五期
希望 优快云 能请一些专业的出题人,或者找一些大厂的笔试算法题(最好改编一下别直接原题),能对参赛者有实际提升价值的比赛才算是好的比赛,最好照顾到不同级别的选手,难易程度要把握好,此外就没有什么大的建议了,优快云 本质是博客技术网站,举办编程竞赛无可厚非,但既然要做就请一定要做好。有一个神奇的键盘,你可以用它输入a到z的字符,然而每当你输入一个元音字母(a,e,i,o,u其中之一)的时候,已输入的字 符串会发生一次反转!比方说,当前输入了tw,此时再输入一个o,此时屏幕上的字符串two会反转成owt。
2022-09-09 22:58:04
407
1
原创 新学期,新FLAG
本人是某双非本科的大二学生,学的是大数据专业,但是我个人很喜欢学习其他的技术,大一的两个学期我尝试了很多我可能会感兴趣的工作室,从前后端到AI大数据我都有涉猎,但大多数都止步于了解。
2022-09-01 22:59:46
830
2
原创 算法学习笔记 - 离散化
如果这时只是需要这堆数据的相对属性,那么可以对其进行离散化处理。当数据只与他们之间相对大小有关,而与具体是多少无关时,可以进行离散化。离散化可以有效的降低时间复杂度。离散化可以改进一个低效的算法,甚至实现根本不可能实现的算法。排序后 1 < 2 < 12345 < 1234567 => 1 < 2 < 3 < 4。离散化本质上可以看成是一种哈希,其保证数据在哈希以后仍然保持原来的全/偏序关系。离散化就是在不改变数据相对大小的前提下,对数据进行相应的缩小。可以离散化的可以是大整数、浮点数、字符串等等。...
2022-08-31 21:06:34
232
原创 Codeforces Round #425 (Div. 2) D 题解
我们考虑对于一个树,在选取的三个节点中,求出两两对应的三个LCA,此时我们可以找到每个 lca 和终点的距离再比较距离的大小就可以得到结果。其实如果我们仔细想一下,我们只要找到深度最深的 lca 再比较它到每个点的距离就可以了。因为最深的 lca 点一定是会经过两条路径的点。这里给个图帮助大家理解。每次询问将给出三个点:a,b,c,你需要在这三个点中选出两个点作为起点,一个点作为终点,由此得到两条路径,且两条路径。例如:你可以选择 a,c 作为起点,b 作为终点,从而得到路径 (a,b),(b,c)。
2022-08-22 17:06:17
349
原创 Codeforces Round #816 (Div. 2) 题解 A,B,C
Codeforces Round #816 (Div. 2) 题解 A,B,C
2022-08-22 00:38:45
459
原创 图论学习笔记 - 树链剖分
树剖树链剖分就是对一棵树分成几条链,把树形变为线性,减少处理难度。变为线性后,经常跟线段树的知识相连,所以代码量相对比较大树剖可以维护的操作将树从x到y结点最短路径上所有节点的值都加上z求树从x到y结点最短路径上所以节点的值之和将以x为根节点的子树内所有节点值都加上z求以x为根节点的子树内所有节点值之和树剖中的关键词重儿子:对于每一个非叶子节点,它的儿子中以 那个儿子为根的子树节点数最大的儿子 为该节点的重儿子(也就是选子孙兴旺的)轻儿子:对于每一个非叶子节点,它的儿子中 非重儿子.
2022-08-18 15:25:51
451
原创 算法学习笔记 - 哈希(Hash)
HashHash 表又称为散列表,一般由 Hash 函数(散列函数)与链表结构共同实现。与离散化思想类似,当我们要对若干复杂信息进行统计时,可以用 Hash 函数把这些复杂信息映射到一个容易维护的值域内。因为值域变简单、范围变小,有可能造成两个不同的原始信息被 Hash 函数映射为相同的值,所以我们需要处理这种冲突情况。有一种称为“开散列”的解决方案是,建立一个邻接表结构,以 Hash 函数的值域作为表头数组 head,映射后的值相同的原始信息被分到同一类,构成一个链表接在对应的表头之后,链表的节点上
2022-08-16 22:27:22
440
原创 数论学习笔记 - 同余及其拓展知识
同余及其扩展知识若 a,b 为两个整数,且它们的差 a-b 能被某个自然树 m 所整除,则称 a 就模 m 来说同余于 b,或者说 a 和 b 关于模 m 同余,记为:。它意味着:a-b=m*k(k为某一个整数)。
2022-08-10 17:26:51
950
原创 图论学习笔记 - 最近公共祖先(LCA)
LCA最近公共祖先给定一棵有根树,若节点 z 既是节点 x 的祖先,也是节点 y 的祖先,则称 z 是 x,y 的公共祖先。在 x,y 的所有公共祖先中,深度最大的一个称为 x,y 的最近公共祖先,记为 LCA(x,y)。LCA(x,y) 是 x 到根的路径与 y 到根的路径的交会点。它也是 x 与 y 之间的路径上深度最小的节点。求最近公共祖先的方法通常有四种:...
2022-08-09 23:40:19
291
原创 数据结构学习笔记 - 分块和莫队
分块和莫队我们可能已经了解了树状数组是基于二进制划分与倍增思想,线段树基于分治思想。它们之所以能够高效地在一个序列上执行指令并统计信息,就是因为它们把序列中的元素聚合成大大小小的“段”,花费额外的代价对这些“段”进行维护,从而使得每个区间的信息可以快速由几个已有的“段”结合而成。当然,树状数组与线段树也有其缺点。比如在维护较为复杂的信息(尤其是不满足区间可加,可减性的信息)时显得吃力,代码实现也不是那么简单、直观,需要深入理解并注意许多细节。在此,我们将介绍分块算法。基本思想是通过适当的划分,预处理
2022-08-07 23:08:46
440
原创 ACWing 198. 反素数 题解
约数的经典例题对于任何正整数x,其约数的个数记作 g(x),例如 g(1)=1、g(6)=4。如果某个正整数x满足:对于任意的小于x的正整数i,都有 g(x)>g(i),则称x为反素数。例如,整数 1,2,4,6等都是反素数。现在给定一个数N,请求出不超过N的最大的反素数。...
2022-08-05 23:34:42
266
原创 数论学习笔记 - 约数
约数定义若整数 n 除以整数 d 的余数为 0,即 d 能整除 n,则称 d 是 n 的约数,n 是 d 的倍数,记为 d|n。算术基本定理的推论在算术基本定理中,若正整数 N 被唯一分解为 N = ,其中 ci 都是正整数,pi 都是质数,且满足 p1<p2<...<pm,则 N 的正约数集合可写作:{},其中 0 ≤ bi ≤ ciN 的正约数个数为(Π表示连乘积符号,与∑类似):(c1 + 1) * (c2 + 1) *...* (cm + 1) = N
2022-05-06 20:44:14
829
原创 数论学习笔记 - 质数那些事儿
定义若一个正整数无法被除了 1 和它自身之外的任何自然数整除,则称该数为质数(或素数),否则该正整数为合数。在整个自然数集合中,质数的数量不多,分布比较稀疏,对于一个足够大的整数 N,不超过 N 的质数大约有 N/lnN 个,即每 lnN 个数中大约有 1 个质数。质数的判定我们最常用的方法是“试除法”简单来说就是,扫描 2~ 之间的所有整数,依次检查它们能否整除 N,若都不能整除,则 N 是质数,否则 N 是合数。试除法的时间复杂度为 O()。当然,我们需要特判 0 和1 这两个整数,
2022-05-05 16:24:13
802
原创 洛谷 P1764 翻转游戏 (加强版) 题解(搜索)
题目链接题目描述kkke在一个n*n的棋盘上进行一个翻转游戏。棋盘的每个格子上都放有一个棋子,每个棋子有2个面,一面是黑色的,另一面是白色的。初始的时候,棋盘上的棋子有的黑色向上,有的白色向上。现在kkke想通过最少次数的翻转,使得棋盘上所有的棋子都是同一个颜色向上的(即全是黑色向上的,或全是白色向上的)。每次翻转的时候,kkke可以选择任意一个棋子,将它翻转,同时,与它上下左右分别相邻的4个棋子也必须同时翻转。输入格式输入的第一行是一个整数n,表示棋盘是n*n的,接下来有n行,每行包括
2022-05-04 19:53:37
1121
原创 图论学习笔记 - 分层图最短路问题(以飞行路线为例)
定义分层图最短路是指在可以进行分层图的图上解决最短路问题。分层图:可以理解为有多个平行的图。一般模型是:在一个正常的图上可以进行 k 次决策,对于每次决策,不影响图的结构,只影响目前的状态或代价。一般将决策前的状态和决策后的状态之间连接一条权值为决策代价的边,表示付出该代价后就可以转换状态了。简单说就是:在图上,有 k 次机会可以直接通过一条边,问起点与终点之间的最短路径。有两种方法解决分层图最短路问题:1、建图时直接建成 k+1 层2、多开一维记录机会信息具体选哪种依题目数据
2022-05-03 16:57:10
1383
原创 2022年4月天梯赛和蓝桥杯的个人总结(废话连篇)
蓝桥杯大一下学期,第一次参加蓝桥杯,在网上看说这个赛事很水,而且前辈们也都说很简单,然后我就信了,没有太当回事儿,毕竟难的题我一时半会儿也写不出来,只要在考试时间内把能写的题都写出来就好了。平时也就没有好好训练,但是也不能说完全不学,基本上一天也有一两道题的做题量,周末还会有周赛或者网络赛什么的。就这样,时间一晃就到了 4.9 号,考试那天我还是满紧张的,毕竟第一次参加这么大型的赛事。进入考场,找到位置,拿出装备,调试完毕。我呆呆的坐在那里等着比赛开始,其实当时也没那么紧张了,甚至在想中午该去吃什么
2022-04-28 14:58:54
10108
12
原创 图论学习笔记 - 关于树上环的那些事儿
基环树众所周知,N 个点的树有 N-1 条边。若在树上任意添加一条边,则会形成一个环。除了环之外,其余部分由若干棵子树构成。我们把这种 N 个点 N 条边的连通无向图,即在树上加一条边构成的恰好包含一个环的图,称为“基环树”。如果不保证连通,那么 N 个点 N 条边的无向图也可能是若干棵基环树组成的森林,简称为“基环树森林”。在有向图中,我们也有类似的概念。N 个点、N 条边、每个节点有且只有一条入边的有向图就好像以“基环”为中心,有向外扩散的趋势,故称为“外向树”。N个点、N条边、每个节点有且
2022-04-27 20:41:06
2154
原创 洛谷P2648 赚钱 题解(最短路变形)
洛谷P2648 赚钱题目描述zzy现在决定环游中国,顺便赚点钱。zzy在一个城市最多只能赚D元,然后他可以选择退休也就是停止赚钱,或者去其它城市工作。当然,他可以在别处工作一阵子后又回到原来的城市再赚D元。这样的往返次数是没有任何限制的。城市间有P条单向路径连接,共有C座城市,编号从1到C。路径i从城市Ai到城市Bi,在路径行走上不用任何花费。zzy还可以乘飞机从某个城市飞到另一个城市。共有F条单向的航线,第i条航线是从城市Ji飞到另一座城市Ki,费用是Ti元。假如zzy身上没有现钱,他可以
2022-04-27 17:26:00
576
原创 2022年团体程序设计天梯赛 L2-3 龙龙送外卖
L2-3 龙龙送外卖龙龙是“饱了呀”外卖软件的注册骑手,负责送帕特小区的外卖。帕特小区的构造非常特别,都是双向道路且没有构成环 —— 你可以简单地认为小区的路构成了一棵树,根结点是外卖站,树上的结点就是要送餐的地址。每到中午 12 点,帕特小区就进入了点餐高峰。一开始,只有一两个地方点外卖,龙龙简单就送好了;但随着大数据的分析,龙龙被派了更多的单子,也就送得越来越累……看着一大堆订单,龙龙想知道,从外卖站出发,访问所有点了外卖的地方至少一次(这样才能把外卖送到)所需的最短路程的距离到底是多少?每
2022-04-27 11:29:26
1419
原创 [NOIP2015 普及组] 推销员 题解(贪心)
原题链接解题思路我们直接用贪心,将每家每户按疲劳值从大到小排序,那么他最大的可能疲劳值就是前 X 个疲劳值,加上前 X 个中最远的一个的距离*2。当然,只这样操作的话,很轻松就会被hack了,比如一个在 1 位置的家庭疲劳值是 5,另一个在 4位置的家庭疲劳值是 1。那么刚才的方法就没法用了。...
2022-04-26 18:59:06
798
1
原创 [USACO15DEC] Counting Haybale P 题解(线段树)
题目链接题目描述题目简单来说就是,给你n个数,并可以对其中任意一个区间进行如下操作:给定一个连续区间,在该区间内的每个数都加上某个数 给定一个连续区间,找出该区间的最小数 给定一个连续区间,求出该区间的和其实,把题目理解透彻之后,基本上就知道要求什么了。没错,这是一道蓝题(提高+/省选-),但其实没有那么的难,只是代码实现上可能会有问题。我个人感觉应该是绿题(晋级+/提高-)的难度。解题思路直接把线段树糊上去就行了,注意取最小值时懒标记的更新方法,还有就是开long lon
2022-04-25 14:22:17
1423
原创 算法学习笔记 - 状态压缩 DP(以炮兵阵地为例)
前言如果大家之前学过“线性DP”的话,应该已经知道,动态规划的过程是随着“阶段”的增长,在每个状态维度上不断扩展的。在任意时刻,已经求出最优解的状态与尚未求出最优解的状态在各维度上的分界点组成了 DP 扩展的“轮廓“。对于某些问题,我们需要在动态规划的”状态“中记录一个集合,保存这个”轮廓“的详细信息,以便进行状态转移。若集合......
2022-04-20 16:36:58
308
原创 算法学习笔记 - 字符串匹配(KMP匹配)
前言KMP 算法,又称模式匹配算法,能够在线性时间内判定字符串 A[1~N] 是否为字符串 B[1~M] 的子串,并求出字符串 A 在字符串 B 中各次出现的位置。最朴素的做法是,尝试枚举字符串 B 中的每个位置 i,把字符串 A 与字符串 B 的后缀 B[i~M] 对齐,向后扫描逐一比较 A[1] 与 B[i],A[2] 与 B[i+1]...是否相等。我们把这种过程称为 A 与 B 尝试进行“匹配”。这个时间复杂度是 O(NM) 的具体步骤对字符串 A 进行自我“匹配”,求出一个数组 n
2022-04-03 15:51:42
491
原创 算法学习笔记 - 倍增
前言倍增,字面意思就是“成倍增长”。这是指我们在进行递推时,如果状态空间很大,通常的线性递推无法满足时间与空间复杂度的要求,那么我们可以通过成倍增长的方式,只递推状态空间中在 2 的整数次幂位置上的值作为代表。当需要其他位置上的值时,我们通过“任意整数可以表示成若干个2的次幂项的和”这一性质,使用之前求出的代表值拼成所需的值。所以使用倍增算法也要求我们递推的问题的状态空间关于2的次幂具有可划分行...
2022-03-24 22:43:29
3234
4
CarRace.cpp c++赛车小游戏
2022-09-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人