分量 算法 笔记tarjan

Redis深度历险 核心原理与应用实践-笔记

1.2.2 5种基础数据结构 string(字符串) 字符串string是Redis最简单的数据结构,其内部表示就是一个字符数组。Redis所有的数据结构都是以唯一的key字符串作为名称,然后通过这唯一的key来获取相应的value数据。不同类型的数据结构差异就在于value的结果不一样。 Redi ......
深度 原理 核心 笔记 Redis

学习笔记430—fMRI数据处理

产生的一系列文件中: https://www.bilibili.com/video/BV1U5411s7kg?p=3 严老师视频 (1)头动矫正 其中FD_Jenkinson最好 下面这个是很早以前用来排除被试的,现在不用了,现在都用meanFD排除 HeadMotion.tsv: 显示最大或平均头 ......
数据处理 笔记 数据 fMRI 430

【基础算法】- 贪心

贪心 定义 贪心算法适用于最优子结构问题。意思是问题在分解成子问题来解决时,子问题的最优解能递推到最终问题的最优解。常见的符合这种性质的问题如: 「我们将 XXX 按照某某顺序排序,然后按某种顺序(例如从小到大)选择。」 「我们每次都取 XXX 中最大/小的东西,并更新 XXX。」 但比如在大部分只 ......
算法 基础

阅读笔记 2: 重构的实际应用

第6章介绍了如何重新组织数据,这是一个常见的重构任务。作者详细讨论了数据类和数据结构的不同,以及如何选择合适的数据组织方式以改善代码质量。 在本章中,福勒讲述了一些具体的数据重构技巧,如封装字段(Encapsulate Field)、以及如何将数据类的职责划分得更加清晰。他提到了代码中的数据泥团(d ......
实际 笔记

子序列相关算法

1、最长公共子序列 最长公共子序列(Longest Common Subsequence,LCS)是动态规划中的经典问题,顾名思义,即求两个序列最长的公共子序列(可以不连续)。 1 #include <iostream> 2 #include<string> 3 using namespace st ......
序列 算法

md5算法实现

前言 md5算法是我们经常会用到的一个hash函数, 虽然已经被证明是不安全的了, 但其应用依然十分广泛. 哈希函数具有如下特点: 将任意长度的字符串映射为固定长度 源数据微小的改动会导致结果差异巨大 不可逆 暴力破解困难 你有没有好奇过, 哈希函数是如何做到这些的呢? 本文就拿md5举例, 看一看 ......
算法 md5 md

《需求分析与系统设计》阅读笔记1

《需求分析与系统设计》首先强调,理解这本书的核心在于认识到需求分析与系统设计是一门应用性知识,阅读虽然重要, 但更为关键的是通过错误的实践、错误分析,并尽力避免未来可能出现的错误。 第一章着重探讨了导致软件失败的原因,以及问题出现时应采取的解决方法。这部分的内容被认为尤为关键。 一旦我们理解这些基本 ......
需求 笔记 系统

之前笔记全记本子上了,一直也没整理……

JavaScript自定义对象 定义格式: var 对象名 = { 属性名(变量名)1:属性值1, …… …… …… …… 函数名称(方法名):function(形参列表){} }; eat;function(){ alert("吃"); } 简化: 函数名称(){ 代码块; } eat(){ al ......
本子 笔记

数论学习笔记

目录 前言 数论基础 1.1 整除 1.2 带余除法,同余 质数 2.1 唯一分解定理 2.2 质数筛(线性筛) 2.3 欧拉函数 最大公因数/最小公倍数 3.1 辗转相除法 3.2 裴蜀定理 3.2 扩展欧几里得算法 线性同余方程 4.1 费马小定理 4.2 欧拉定理 4.3 逆元 4.4 求解线 ......
数论 笔记

代码随想录刷题笔记

代码随想录 数组 704. 二分查找 力扣题目链接 class Solution { public int search(int[] nums, int target) { int left = 0, right = nums.length-1; while (left <= right) { in ......
随想录 随想 代码 笔记

【python笔记】杂乱版

numpy.tile的作用 import numpy as np # 重复一个标量值 scalar = 5 result1 = np.tile(scalar, 3) print(result1) # 输出:[5, 5, 5] # 重复一个数组 arr = [1, 2, 3] result2 = np ......
笔记 python

Splay 学习笔记

Splay 概述 Splay也称伸展树,是二叉搜索树(BST)的一种近似平衡的类型,由Daniel Sleator 和 Robert Tarjan 于 1985 年发明。有着极其优秀的复杂度(均摊\(O(log_2n)\))。 可以实现Splay(旋转某节点到根),Split(分裂),Merge(合 ......
笔记 Splay

diff算法

什么是Diff算法?Diff算法是Vue.js的一个核心特性,它是一种用于比较虚拟DOM树的差异,并最小化DOM操作的数量。当Vue.js检测到数据更改时,它会生成一个新的虚拟DOM树,并将其与旧虚拟DOM树进行比较。Diff算法会查找差异,并仅对需要更改的部分进行DOM操作。这种算法可以帮助我们在 ......
算法 diff

算法笔记(6)数列分块

原发表于我的博客 前言 分块不能说是一种数据结构,它是一种思想,无论是数列分块,块状链表,还是数论分块,莫队算法,都应用了分块的思想。 本文主要介绍狭义上的分块,即数列分块。 数列分块的引入 数列分块可以说是暴力,一种优美的暴力,它的基本思路是,把数列分成若干块(一般取\(\sqrt n\)),分块 ......
数列 算法 笔记

算法笔记(5)贪心算法

原发表于我的博客 贪心算法 贪心与其说是一种算法,不如说一种思想。 贪心思想,顾名思义,就是总是做出当前最好的选择,这种方式可能在全局上不是最好的结果,但是在一些题目中就可以直接用。 最简单的例子就是“货比三家”,在生活中,我们买东西时都会挑性价比最优的,这就是一种贪心。 贪心算法在OI中经常与其他 ......
算法 笔记

算法笔记(4)莫队算法入门

原发表于我的博客 前言 本来想学完回滚莫队、树上莫队、二离莫队之后一起写一个博客,但是一直学不会/kk,只好把已会的普通莫队和带修莫队写了(以后会补上的) 普通莫队 莫队——优雅的暴力 莫队算法的引入 例题: 给定一个数列和若干询问,每次询问询问一段区间内不同种类数字的个数。 暴力做法 每次询问暴力 ......
算法 笔记

算法笔记(3)模拟退火

原发表于个人博客= 模拟退火的引入 假如我们有一个函数,要求它的极大值,怎么求呢? 如果这个函数满足单调性,可以用二分的方法。 如果这是一个单谷(或单峰)函数,可以用三分法。 那要是多峰函数怎么半呢? 这时就可以用随机化算法。 一种朴素的方法是:每次在当前找到的最优方案\(x\)附近寻找一个新方案。 ......
算法 笔记

算法笔记(2)FHQtreap

原发布于我的个人博客 前言 FHQtreap绝对是平衡树里最好写,最实用的,他几乎能做所有splay或其它平衡树能做的事,还能可持久化! 这篇文章将会介绍FHQtreap的基本操作和维护区间的操作,并附上例题。 基本操作 FHQtreap的基本操作只有两个,分裂和合并。 有些读者可能会问,分裂和合并 ......
算法 FHQtreap 笔记

K-medoids聚类算法

发展: 们每次选簇的平均值作为新的中心,迭代直到簇中对象分布不再变化。因此一个具有很大极端值的对象会扭曲数据分布,造成算法对极端值敏感 在聚类分析中,异常值通常会引起问题,因为它们可能会被分配到一个独立的聚类,从而干扰正常的聚类结果。这可能导致聚类算法产生不合理或不稳定的结果 定义: K-Medoi ......
算法 K-medoids medoids

算法笔记(1)线段树

原发表于个人博客。 前言 线段树,是数据结构皇冠上的明珠(我编的)。 它用途广泛,被一代代的oier应用,改进,优化。 本文介绍了线段树的基础知识和各种拓展(包括权值线段树,可持久化线段树),各种优化方式(包括zkw线段树,动态开点,离散化),希望能帮到更多的oier。 在学习线段树前,默认你应该学 ......
线段 算法 笔记

算法-共识算法

一、Paxos 基础的Paxos算法包括如下三种:Basic Paxos、Multi Paxos、Fast Paxos Paxos将系统中的角色分为提议者 (Proposer),决策者 (Acceptor),和最终决策学习者 (Learner): 【Proposer】:提出提案(Proposal)。 ......
算法 共识

【学习笔记】莫队

0 前言 前置知识: 会打暴力。 简单的分块或根号思想。 二次离线莫队不会,就不写了。 1 普通莫队 不妨直接上一个例题来看看,通过题目来直接引入莫队:题目链接。 题意:给定一个长度为 \(n\) 的数列 \(n\),\(m\) 次询问区间 \([l,r]\) 中的不同数字数。 我们不妨设置两个指针 ......
笔记

【学习笔记】线段树合并

前置知识:动态开点权值线段树。 线段树合并,顾名思义,就是将两棵权值线段树合并在一起。为什么不把两棵普通的线段树合并呢?因为那样好像没啥用。 我们知道,权值线段树支持着查询某个数的个数、查询第 \(k\) 大/小的数等操作,有了合并操作之后就可能会支持一些令人意想不到的操作。 放张图,可以帮助理解下 ......
线段 笔记

【学习笔记】数论——同余相关

0 前言 闲的没事的时候可能会摸鱼写一写,都是些非常基础的东西。 最高大概会写到 exCRT 和 exBSGS 吧,阶和原根往后的我也不会了,但是前面的内容会时不时来补充。 为了方便偷懒,许多定理不会给出证明。 1 基本概念 \(\gcd(a,b)\) 或者 \((a,b)\):\(a,b\) 的最 ......
数论 笔记

【学习笔记】莫比乌斯反演

前言/声明 首先,本人的数论水平极低,目前莫反只是刚刚入门的水平,此博客的主要作用是用于记录本人的学习过程,真的想要深入了解莫反的话这边推荐 cmd 大佬的博客(点这里),应该对你有更大帮助。 建议学习的时候能多理解些就多去理解,少硬记些结论,这样更不容易忘记。 前置知识:最基础的数论。 0 基本定 ......
笔记

【学习笔记】01 分数规划

分数规划问题,大概就是一类求解分式最值的问题。 比如下面这个问题:给定 \(n\) 个物品,每个物品有两个属性 \(a\) 和 \(b\),保证均为正数,从中选出若干个出来,要求最小化(也可能是最大) \(\frac{\sum a}{\sum b}\)。 当然还可能有一些奇怪的其他要求,比如限制分子 ......
分数 笔记

【学习笔记】FHQ-Treap

前置知识:二叉搜索树与二叉堆。 1. 简介 Treap,即 Tree+Heap,它的每个结点上存储着一个索引 \(key\) 和一个值 \(val\),其中索引满足二叉堆的性质,值满足二叉搜索树的性质,且索引是随机的。Treap 就是通过上述的性质,使树达到平衡。 至于为什么索引是随机的,其实很简单 ......
FHQ-Treap 笔记 Treap FHQ

学习笔记429—装双系统出现错误【Invalid signuature detected. If this error persists. seek technical assistance】

装双系统出现错误:Invalid signuature detected. If this error persists. seek technical assistance 1)出现Invalid Signature detected Check Secure Boot Policy错误,是因为b ......

【学习笔记】Splay

前置知识:二叉排序树(BST)。 基本操作 首先我们要维护下面这几个东西: int fa[maxn],siz[maxn],val[maxn],ch[maxn][2],cnt[maxn],root,tot; //fa:当前点父亲 siz:以当前点为根子树大小 val:权值 ch:左右儿子 cnt:当前 ......
笔记 Splay

manacher算法

manacher算法 斯♥哈♥学长的博客https://www.cnblogs.com/luckyblock/p/17044694.html#5140558 为什么老师叫他马拉车算法/yiw 简介 我们都知道,求最长回文子串可以枚举每一个开始的点,然后直接一个一个比较就完事,但这样的复杂度是接近 \ ......
算法 manacher