数列 前缀 区间 算法

数据结构与算法基础复习--(1)

#基本术语 ##1.数据(Data) 数据 是能输入计算机且能被计算机处理的各种符号的集合 信息的载体 是对客观事物符号化的表示 能够被计算机识别、存储和加工 包括: 数值型的数据:整数、实数等 非数值型的数据:文字、图像、图形、声音等 ##2.数据元素 数据元素 是数据的基本单位,在计算机程序中通 ......
数据结构 算法 结构 基础 数据

区间不同数的个数 二维数点 扫描线 可持久化线段树

二维数点,对于询问的$[l, r]$区间我们只需要统计有多少个数上一次出现的位置$pos$ 满足$pos \leq l$,即可。 template<class T> struct BIT { T c[N]; int size; void resize(int s) { size = s;} T qu ......
扫描线 线段 区间 个数

人体跟踪算法的描述

因为前一部分创新点用的是人体姿态估计,所以输出必定是关键点坐标,因此跟踪部分必须是关键点跟踪。 方法一:对前一帧和后一帧比较,进行相似度匹配。这样是无法解决遮挡问题的。看过多篇文章都是基于这个思路。 方法二:选取一个关键点去表示人体去跟所有帧所有人进行相似度估计。 ......
算法 人体

前缀和与差分

前缀和 原数组: a1 , a2 , a3 , $\cdots$ , an 前缀和数组: si = a1 + a2 + $\cdots$ + ai , s0 = 0 ① 如何求前缀和数组 Si : Si = Si-1 + ai , s0 = 0 ② 前缀和数组的作用: 快速地求出原数组中一段数的和 ......
前缀

二分算法

整数二分 二分与单调性的关系: 如果有单调性, 一定可以二分; 可以二分的题目, 不一定非得有单调性 二分的本质: 边界 在区间上定义了某种性质, 该性质在区间右半边满足, 左半边不满足, 使整个区间一分为二 二分可以寻找性质的边界(既可以寻找边界 i , 也可以寻找边界 j ) ① 寻找边界 i ......
算法

欧几里得算法和扩展欧几里得算法

欧几里得算法基本原理和证明 代码实现: #include<iostream> using namespace std; int gcd(int a,int b){ return b?gcd(b,a%b):a; } int main(){ int x,y; cin>>x>>y; cout<<gcd(x ......
算法

可持久化线段树模板 区间第k小数,区间前k大数之和

第K小数 // AC one more times #include <bits/stdc++.h> using namespace std; #define fi first #define se second #define pb push_back #define endl '\n' #def ......
区间 线段 大数 之和 小数

排序算法

快速排序 //快速排序算法模板 void quick_sort (int q[],int l,int r) { if(l>=r)return; int i=l-1,j=r+1,x=q[l]; //x=q[r] while(i<j) { do i++; while(q[i]<x); do j--; w ......
算法

区间涂色问题

一眼区间dp 设dp[i][j]为涂完i到j所需的最小次数 当a[i]==a[j]时,dp[i][j] = min(dp[i+1][j-1]+1,min(dp[i+1][j],dp[i][j-1])); 为什么是dp[i+1][j-1]+1,此时会产生一个异想天开的想法,就是取遍历一遍i+1到j-1 ......
区间 问题

大话AI绘画技术原理与算法优化

引子 博主很长一段时间都没有发文,确实是在忙一些技术研究。 如标题所示,本篇博文主要把近段时间的研究工作做一个review。 看过各种相关技术的公关文章,林林总总,水分很多。 也确实没有多少人能把一些技术细节用一些比较通俗的语言阐述清楚。 故此,再一次冠以大话为题,对AI绘画主要是stable di ......
算法 绘画 大话 原理 技术

C++中的STL容器和算法

C++ STL(标准模板库)提供了一组丰富的容器和算法,使得开发者能够更加高效地编写程序。本文将介绍STL中的一些常用容器和算法。 容器 vector vector是一个动态数组,可以在运行时调整大小。它的优点在于可以快速地访问元素,缺点是在插入和删除元素时需要移动后面的元素。 #include < ......
算法 容器 STL

一文带你了解区块链中15种共识算法

所有主要的区块链共识算法解释 区块链技术席卷全球,提供了一种去中心化且安全的信息存储和传输方式。它还彻底改变了交易的执行方式,随之而来的是广泛的共识算法。在这里,共识算法在确保区块链网络的完整性方面发挥着关键作用。在本文中,我们将探讨所有主要类型的区块链共识算法、它们的含义、优点、缺点,以及为什么它 ......
区块 共识 算法

[2core]加解密算法

本文主要记录从.netframework迁移到.net6后,加解密算法的跨平台测试,如AES和RSA算法。因为RSA使用了BouncyCastle类库提供的实现,所以并没有遇到什么问题。 完成加解密算法跨平台测试,迁移工作算是告一段,也标志着从.netframework迁移.net6工作完毕。 迁移 ......
算法 2core core

KMP算法

KMP算法用于解决字符串匹配问题, str1 某个字符串是否与 str2 一样, 如果一样, 返回 str2 开始的位置 //KMP算法模板 int n,m; char s[N],p[M]; int ne[M]; //s[]是长文本,p[]是模式串(短串),n是s的长度,m是p的长度 //读入字符串 ......
算法 KMP

一文彻底搞懂ZAB算法,看这篇就够了!!!

最近需要设计一个分布式系统,需要一个中间件来存储共享的信息,来保证多个系统之间的数据一致性,调研了两个主流框架Zookeeper和ETCD,发现都能满足我们的系统需求。其中ETCD是K8s中采用的分布式存储,而其底层采用了RAFT算法来保证一致性,之前已经详细分析了Raft算法的原理,今天主要仔细分 ......
算法 ZAB

[练习记录] 《算法竞赛进阶指南》打卡活动

89. a^b 题目大意 给 $a,b,p$ 求 $a^b \mod p$。 思路 可以直接快速幂。当模数 $p$ 为 $1$ 的时候特判一下。 代码 ll a, b, mod; ll qpow(ll a, ll b) { ll res = 1; while (b) { if (b & 1) res ......
算法 指南

分块+莫队算法

分块 复杂度$O(n \sqrt n)$ 主要目的是解决一些区间操作问题 把区间拆分成 $\sqrt{n}$ 大小的块 每次碰到修改的操作,对于散块,直接暴力操作,对于整块,那么用一个 $tag$ 进行标记即可 也就是说对于一个操作 $[l,r]$ 来说 我们需要进行操作主要分三步: 暴力操作头散块 ......
算法

Gusfield算法学习

算法详解 等价流树正如其名,树上两点间的路径上的边权最小值为图上两点间的最小割。 Gusfield算法就是建等价流树的一种算法。设当前正在处理的集合为 $S(|S|\ge 2)$,从 $S$ 中任选两个点 $x,y$,求出 $x,y$ 间的最小割也就是最大流 $flow$,此时在最小割树中加入一条从 ......
算法 Gusfield

Berlekamp–Massey 算法 小记

神秘算法,模拟赛对着死磕了3.5h 然后发现是高科技,大家都不会,但是大家都会 T3 ,输麻了。 这个算法是一个增量构造的过程,我们尝试维护前 $i-1$ 项的递推式,然后对于加入 第 $i$ 项后调整。 具体的,假设我们有一个数列 $1,2,4,10,24,50$,最初我们的递推式是 ${}$。 ......
小记 算法 Berlekamp Massey

三维重建原理和算法

原理 采集深度图像:使用深度相机采集场景深度信息,并将其转换为深度图像。 点云生成:根据深度图像,将场景中的点云数据进行生成。 点云滤波:对于采集到的点云数据进行滤波处理,去除无效数据点。 点云配准:如果需要将多个点云数据融合为一个完整的点云模型,需要进行点云配准操作,使得各个点云数据之间能够对齐。 ......
算法 原理

区间dp 和 树型dp

##区间dp 递推方程是以区间的形式给出 一般套路 :枚举区间长度 区间端点 区间分界点 然后就是想怎么去对这个区间进行一定的操作 从最原始的地方开始一步步推导方程! for(i=1;i<n;i++)//区间长度为1 { for(j=1;j<=n-i;j++) //区间开头 { for(k=j;k< ......
区间

jQuery轮播图(模仿滑动窗口算法)

``` const status = [ "left:0px;", "left:10px;", "left:20px;", "left:30px;", "left:40px;", ]; const list = $("#carousel > ul > li"); const len = list.l ......
算法 jQuery

[ML从入门到入门] 支持向量机:SMO算法的收敛性分析

引言 上一篇文章我们介绍了 SMO 算法,作为其姊妹篇,本文将对 SMO 算法的收敛性进行扼要地分析,同时,希望能为读者提供新的角度去理解 SMO 算法的原理。 证明思路来自于《Convergence of a Generalized SMO Algorithm for SVM Classifier ......
向量 算法 SMO

基于模拟退火算法的车间调度优化matlab仿真,输出甘特图

1.算法仿真效果 matlab2022a仿真结果如下: 优化目标: 最小平均流动时间 粒子数:100 循环代数:500 变异率:0.35 变异变换对数:3 模拟退火初始值:1000 模拟退火终值:0 最小平均流动时间:43 最大完工时间:61 最小间隙时间:60 最优粒子3 1 3 6 4 5 3 ......
算法 车间 matlab

基于LBP人脸特征提取算法的人员身份信息验证matlab仿真

1.算法仿真效果 matlab2022a仿真结果如下: 2.算法涉及理论知识概要 LBP(Local Binary Patterns,局部二值模式)是提取局部特征作为判别依据的。LBP方法显著的优点是对光照不敏感,但是依然没有解决姿态和表情的问题。不过相比于特征脸方法,LBP的识别率已经有了很大的提 ......
人脸 算法 特征 身份 人员

连续数列和问题

关于7的迷题 Description给你n个数,分别是a[1],a[2],...,a[n]。 求一个最长的区间[x,y], 使得区间中的数(a[x],a[x+1],a[x+2],...,a[y-1],a[y])的和能被7整除。 输出区间长度。若没有符合要求的区间,输出0。 FormatInput第一 ......
数列 问题

Gusfield算法学习

算法详解 感觉最小割树是个很神奇的东西。 最小割树有一个性质:原图上的两点间的最小割大小和方案正好有一种是树上对应两点间的最小割大小和方案。 那么怎么建出这样的树呢?可以用到Gomory-Hu Tree。但我们通常只需要用到大小,这时候我们可以建出等价流树。 Gusfield算法就是建等价流树的一种 ......
算法 Gusfield

JAVA AES 加密算法实现

import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.nio.charset.StandardCharsets ......
算法 JAVA AES

二分查找算法讲解及其C++代码实现

二分查找算法是一种常用的查找算法,也被称为折半查找。它可以在有序的数组或列表中快速查找需要的元素。 算法描述: 首先确定数组的中间位置mid=(left+right)/2; 然后将要查找的值key与中间位置的值进行比较; 如果key等于中间位置的值,则查找成功,返回mid; 如果key小于中间位置的 ......
算法 代码

[NOI2005] 维护数列

总体思路其实跟用线段树维护区间最大字段和差不多,不过唯一麻烦的地方在于要算上自己。 然后我们可以开一个队列来回收那些被delete的点,这样可以节省空间,特别需要注意的是release的时候,标记什么的一定记得清空。 本来insert我是直接一个个merge的,这样就会导致特别慢,因此我们可以借助笛 ......
数列 2005 NOI