位运算与&或|异或^左移>\(x\(x>>y=\frac{x}{2^{y}}\)\(2a+1=(a\(a\)%\(2=a\)&\(1\)st表当st表合并的复杂度为\(O(1)\)时,st表构建的复杂度为\(O(nlogn)\),查询的复杂度为\(O(1)\),但是st表并不支持修改。求区间最大值/最小值:复杂度\(O(n)\)st表的核心在于倍增和DP。\(f[i][j]\)表示以第\(i\)个数作为左端点,长度为\(2^{j}\)的区间的最值,也就是\([i,i+2^{j}-1]\)的区间最值。\(f[i][0]=a[i]\)\(f[i][j]=merge(f[i][j-1],f[i+2^
前言首先明确,权值线段树是线段树的一个子集。它的思想与线段树一模一样,只是实现的功能更加神奇。前置知识:线段树树状数组本文将介绍权值线段树、可持久化权值线段树、树状数组套可持久化权值线段树。权值数组对于一个序列\(a\),若它的权值数组\(b\),则:\[\foralli\in\mathbb{Z},b_i=\sum_{j=1}^{|a|}{[a_j=i]}\]即\(b_i\)为\(i\)在\(a\)中的出现次数。我们可以使用线段树来维护权值数组,该线段树便称为权值线段树。注意\(b\)的大小与值域有关,可能特别大,但中的非\(0\)值分布十分稀疏(最多\(|a|\)个)。我们可以使用下面的方法
提供一种需要卡常的分块写法。首先看到\(\operatorname{popcount}\)操作,便可以自然而然的想到在值域上做文章。首先因为\(\operatorname{popcount}\leq\logx\)。所以可以想到对于一个序列来说,进行一次\(\operatorname{popcount}\)操作后至多有\(\logV\)个不同的数字。并且在对这个区间进行全局操作时不同数的数量不增。因此考虑分块。块内最开始用\(tag\)记录加法操作。对于块内如果有整块\(\operatorname{popcount}\)操作则转换成记录每个值都变成了什么。由于所有值不大于\(\logV\),所以
·质数素数定理:设\(x\geq1\),以\(\pi(x)\)表示不超过\(x\)的素数的个数。当\(x\rightarrow\infty\)时,\(\pi(x)\to\dfrac{x}{\ln(x)}\)质数筛法1.埃式筛:从小到大一次枚举质数,将\(\left[1,n\right]\)内的所有倍数都标记为合数,未被标记的则为质数。2.线性筛:保证对任一合数,只会被其最小质因数标记。对于每一个数\(i\),从小到大枚举当前质数集\(p\),\(p_j\leqi\),标记合数\(i\timesp_j\),若\(p_j|i\)说明\(i=p_j\timesu\);对于\(p_j,\(i\time
CHANGELOG2021.12.5:修改例题代码与部分表述,增加基础定义。2022.4.22:重构文章。2022.5.21:进行一些增补,添加Floyd算法和SCC缩点。2022.5.25:添加Hierholzer算法。2022.8.15:修正强连通分量部分的事实性错误。基本定义边导出子图:选出若干条边,以及这些边所连接的所有顶点组成的图称为边导出子图。点导出子图:选出若干个点,以及两端都在该点集的所有边组成的图称为点导出子图。闭合子图:定义在有向图上。点集\(V\)导出的闭合子图是所有\(V\)可达的点的点导出子图。其精确定义为若\(x\)在子图内,则\(x\)的所有出点和出边均在子图内的
蚁群算法引言在自然界中各种生物群体显现出来的智能近几十年来得到了学者们的广泛关注,学者们通过对简单生物体的群体行为进行模拟,进而提出了群智能算法。其中,模拟蚁群觅食过程的蚁群优化算法(AntColonyOptimization,ACO)和模拟鸟群运动方式的粒子群算法是两种最主要的群体智能算法。本文介绍蚁群优化算法(简称蚁群算法)。蚁群算法是一种源于大自然生物世界的新的仿生进化算法,是由意大利学者M.Dorigo等人于20世纪90年代初期通过模拟自然界中蚂蚁集体寻经行为而提出的一种基于种群的启发式随机搜索算法。蚂蚁有能力在其走过的路径上释放一种特殊的分泌物——信息素,随着时间的推移该物质会逐渐挥
前言所谓深度神经网络的优化算法,即用来更新神经网络参数,并使损失函数最小化的算法。优化算法对于深度学习非常重要,如果说网络参数初始化(模型迭代的初始点)能够决定模型是否收敛,那优化算法的性能则直接影响模型的训练效率。了解不同优化算法的原理及其超参数的作用将使我们更有效的调整优化器的超参数,从而提高模型的性能。本文的优化算法特指:寻找神经网络上的一组参数$\theta$,它能显著地降低损失函数\(J(\theta)\),该损失函数通常包括整个训练集上的性能评估和额外的正则化项。本文损失函数、目标函数、代价函数不严格区分定义。一,梯度下降优化算法1.1,随机梯度下降SGD梯度下降法是最基本的一类优
摘要残差网络(ResNet)的提出是为了解决深度神经网络的“退化”(优化)问题。有论文指出,神经网络越来越深的时候,反传回来的梯度之间的相关性会越来越差,最后接近白噪声。即更深的卷积网络会产生梯度消失问题导致网络无法有效训练。而ResNet通过设计残差块结构,调整模型结构,让更深的模型能够有效训练更训练。目前ResNet被当作目标检测、语义分割等视觉算法框架的主流backbone。一,残差网络介绍作者提出认为,假设一个比较浅的卷积网络已经可以达到不错的效果,那么即使新加了很多卷积层什么也不做,模型的效果也不会变差。但,之所以之前的深度网络出现退化问题,是因为让网络层什么都不做恰好是当前神经网络
1随机图生成简介1.1\(G_{np}\)和\(G_{nm}\)以下是我学习《CS224W:MachineLearningWithGraphs》[1]中随机图生成部分的笔记,部分补充内容参考了随机算法教材[2]和wiki[3]。随机图生成算法应用非常广泛,在NetworkX网络数据库中也内置的相关算法。我觉得做图机器学习的童鞋很有必要了解下。Erdos-Renyi随机图[4]以两位著名的匈牙利数学家PualErdős和A.Rényi的名字命名的,是生成随机无向图最简单和常用的方法,包括以下两种紧密相关的变体:\(G_{np}\):拥有\(n\)个节点,且边\((u,v)\)以独立同分布的概率\
前言首先明确,权值线段树是线段树的一个子集。它的思想与线段树一模一样,只是实现的功能更加神奇。前置知识:线段树树状数组本文将介绍权值线段树、可持久化权值线段树、树状数组套可持久化权值线段树。权值数组对于一个序列\(a\),若它的权值数组\(b\),则:\[\foralli\in\mathbb{Z},b_i=\sum_{j=1}^{|a|}{[a_j=i]}\]即\(b_i\)为\(i\)在\(a\)中的出现次数。我们可以使用线段树来维护权值数组,该线段树便称为权值线段树。注意\(b\)的大小与值域有关,可能特别大,但中的非\(0\)值分布十分稀疏(最多\(|a|\)个)。我们可以使用下面的方法