策略 梯度 确定性 算法

【知识点】如何找到正确的算法?

算法思路 一、多组查询 · 考虑如何利用已知信息避免重复查询。 · 考虑各种预处理,例如前缀和。 二、规模减小 · 考虑树、链等 三、以小见大 · 考虑特殊情况,并考虑以此为基础继续转移 四、模拟优化 · 考虑高维复杂度算法,并考虑尽可能优化 五、题面信息 · 数据规模 \[n≥10^8:O(\lo ......
知识点 算法 知识

【知识点】如何找到正确的算法?

# 算法思路 **一、多组查询** · 考虑如何利用已知信息避免重复查询。 · 考虑各种预处理,例如前缀和。 **二、规模减小** · 考虑树、链等 **三、以小见大** · 考虑特殊情况,并考虑以此为基础继续转移 **四、模拟优化** · 考虑高维复杂度算法,并考虑尽可能优化 **五、题面信息** ......
知识点 算法 知识

2023“钉耙编程”中国大学生算法设计超级联赛(3)

题解: https://files.cnblogs.com/files/clrs97/2023HDU%E7%AC%AC%E4%B8%89%E5%9C%BA%E9%A2%98%E8%A7%A3.pdf Code: A. Magma Cave #include<iostream> #include<al ......
钉耙 算法 联赛 大学生 大学

【基础算法】排序算法 —— 插入排序

一、算法原理 插入排序将数组分为已排序区间和未排序区间,初始已排序区间只有数组第1个元素,未排序区间从下标 1 开始到数组末尾。每次取未排序区间的第1个元素,将它插入已排序区间的合适位置,并保证已排序区间一直有序。重复这个过程,直到未排序区间为空,算法结束。 给有序数组(已排序区间)插入1个新元素, ......
算法 基础

【基础算法】排序算法 —— 选择排序

一、算法原理 选择排序将数组分为已排序区间和未排序区间,每次选择未排序区间的最小元素,将它放到已排序区间末尾。一次选择会让一个元素移动到它应该在的位置,重复 n 次,就完成了 n 个数据的排序。 示例:使用选择排序对数组 arr = [4,5,6,3,2,1] 从小到大排序。 第1次选择: 第2次选 ......
算法 基础

【基础算法】排序算法 —— 冒泡排序

一、算法原理 冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,如果不满足大小关系要求,就进行交换。一次冒泡会让至少一个元素移动到它应该在的位置,重复 n 次,就完成了 n 个数据的排序。 示例:使用冒泡排序对数组 arr = [4,5,6,3,2,1] 从小到大排序。 第1 ......
算法 基础

软件设计模式系列之二十三——策略模式

策略模式(Strategy Pattern)是一种行为型设计模式,它允许在运行时动态选择算法的行为。这意味着你可以定义一系列算法,将它们封装成独立的策略对象,然后根据需要在不修改客户端代码的情况下切换这些算法。策略模式有助于解决问题领域中不同行为的变化和扩展,同时保持代码的灵活性和可维护性。 ......
模式 设计模式 策略 软件

稳定婚姻问题(Gale-Shapley算法)

前言 今天 duck、香饽饽老板和彬彬一起出了个模拟赛,赛时T2想到了跟正解很接近的做法,但最后还是打挂了then喜提0pts,后面 duck 讲题的时候才知道是稳定婚姻板题。 看完证明之后觉得很妙,遂开坑。 只是简单整理,图一乐子吧算是。 说是稳定婚姻问题,但其实我觉得更合适的叫法是属性稳定分配问 ......
Gale-Shapley 算法 婚姻 Shapley 问题

【基础算法】排序算法

一、排序算法简介 排序是对批量数据按照一定的顺序进行排列的操作。 1.1 学习排序算法的要点 算法原理、代码实现、评价算法优劣。 1.2 评价排序算法的优劣 排序算法的优劣可以从以下 3 个方面进行评价: 时间性能:最好、最坏、平均时间复杂度; 内存占用:是否原地排序,原地排序算法,特指空间复杂度是 ......
算法 基础

灵魂三问之稳定性摸排

本文记录了稳定性摸排过程中的一些思考和沉淀。 前言 在之前写了篇文章《上线十年,81万行Java代码的老系统如何重构》,在文章后有同学留言问“这么复杂的改动,质量是如何应对的”,是一个特别好的问题,当时只是从现有的一些监控、测试、卡口手段上进行了回答。但在回答过程当中就在思考一个问题,交接过来的老代 ......
稳定性 灵魂

视频融合/监控汇聚平台EasyCVR人形检测算法应用汇总

安防视频监控平台EasyCVR是一个具有强大拓展性、灵活的视频能力和轻便部署的平台。它支持多种主流标准协议,包括国标GB28181、RTSP/Onvif、RTMP等,还可以支持厂家的私有协议和SDK接入,例如海康Ehome、海大宇等设备的SDK。该平台不仅拥有传统安防视频监控的功能,还具备接入AI智 ......
人形 算法 EasyCVR 平台 视频

排序算法

在线验证算法 排序数组 算法实现 1. 快排 思路 树的前序遍历。 每次选取一个数作基准值,将小于基准值的数放在左边,大于基准值的数放在右边。遍历左子树及右子树,直到只有1个数为止。 实现 class QuickSort { public static void sort(int[] nums) { ......
算法

归并排序算法详解

算法介绍 引用百度百科的介绍。 归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有 ......
算法

算法:线段树

算法:线段树 哦吼!终于来学线段树啦~~ 拖了好久都没有敢学,主要是基础知识点不熟,代码能力太弱。但是现在已经是时候了。 来看: 线段树(Segment Tree)几乎是算法竞赛最常用的数据结构了,它主要用于维护 区间信息 (要求满足结合律)。与树状数组相比,它可以实现 \(O(log⁡\ n)\) ......
线段 算法

文心一言 VS 讯飞星火 VS chatgpt (105)-- 算法导论10.1 3题

三、用go语言,仿照图 10-2,画图表示依次执行操作 ENQUEUE(Q,4)、ENQUEUE(Q,1)、ENQUEUE(Q,3)、DEQUEUE(Q)、ENQUEUE(Q,8)和 DEQUEUE(Q)每一步的结果,队列初始为空,存储于数组 Q[1..6]中。 文心一言: 在这个问题中,我们尝试使 ......
文心 导论 算法 chatgpt VS

记一种无需形式幂级数求逆的多点求值算法

仅作为个人理解之用 来自 https://judge.yosupo.jp/submission/140699 首先product tree部分不变 我们考虑如何不使用形式幂级数求逆 注意到 如果对dft的点值求逆实际上是在对 x^lim-1 取模的意义下 实际上在这个意义下也是可做的 首先判掉所求点 ......
幂级数 算法 形式

KMP算法

KMP算法是用来进行字符串匹配的算法。 核心概念 1、s[ ]是模式串,即比较长的字符串。 2、p[ ]是模板串,即比较短的字符串。用P去匹配S。 3、“非平凡前缀”:指除了最后一个字符以外,一个字符串的全部从头部字符到末尾字符的前一个的所有组合。 4、“非平凡后缀”:指除了第一个字符以外,一个字符 ......
算法 KMP

视频汇聚/监控汇聚平台EasyCVR智能分析系统人脸检测算法的应用与特点

AI人脸检测算法具备提取人脸和服装特征的能力,并将其分类为有用的属性,如性别、年龄和服装颜色等。通过搜索这些丰富的属性信息,我们可以方便地找到目标人物,例如通过人脸图像进行相似图像搜索或实施人脸布控等操作。 安防视频监控平台EasyCVR是一个具有强大拓展性、灵活的视频能力和轻便部署的平台。它支持多 ......
人脸 算法 特点 EasyCVR 智能

视频汇聚/视频融合平台EasyCVR智慧安防AI算法方案,解放人力高效监管

安防视频监控平台EasyCVR是一个具有强大拓展性、灵活的视频能力和轻便部署的平台。它支持多种主流标准协议,包括国标GB28181、RTSP/Onvif、RTMP等,还可以支持厂家的私有协议和SDK接入,例如海康Ehome、海大宇等设备的SDK。该平台不仅拥有传统安防视频监控的功能,还具备接入AI智 ......
视频 算法 智慧 EasyCVR 人力

[数据结构和算法] 堆/优先队列的实现

预备知识: 完全二叉树可以用数组表示: 从下标0开始存储数据:左子节点 = 2 * 父节点 + 1,右子节点 = 2 * 父节点 + 2; 从下标1开始存储数据:左子结点 = 2 * 父节点,右子节点= 2 * 父节点 + 1; 堆: 大根堆:父节点的值大于等于左右子节点的值; 小根堆:父节点的值小 ......
数据结构 队列 算法 结构 数据

深度学习梯度与反向传播

梯度与反向传播 1、梯度(方向向量) 1.1 什么是梯度 梯度:是一个向量,导数+变化最快的方向(学习的前进方向) 目标:通过梯度调整(学习)参数$$w$$,尽可能的降低$$loss$$ 一般的,随机初始一个$$w0$$,通过优化器在学习率和梯度的调整下,让$$loss$$函数取到最小值。 1.2 ......
梯度 深度

文心一言 VS 讯飞星火 VS chatgpt (104)-- 算法导论10.1 2题

二、用go语言,说明如何在一个数组 A[1..n]中实现两个栈,使得当两个栈的元素个数之和不为 n 时,两者都不会发生上溢。要求 PUSH 和 POP 操作的运行时间为 O(1)。 文心一言: 在这个问题中,我们要在一个数组 A[1..n] 中实现两个栈,使得当两个栈的元素个数之和不为 n 时,两者 ......
文心 导论 算法 chatgpt VS

雷达到达角估计算法3DFFT,DBF,MUSIC,Capon的原理、对比、各自的优势

雷达到达角估计算法3DFFT,DBF,MUSIC,Capon的原理、对比、各自的优势 雷达到达角估计是雷达信号处理中的一个重要问题,旨在确定来自目标的雷达信号的到达角度。雷达到达角估计算法可以分为时域方法和频域方法两种类型。其中,频域方法可以进一步分为基于阵列信号处理的方法和基于普通雷达信号处理的方 ......
算法 原理 优势 3DFFT Capon

[算法]双指针的种种应用

本文使用C语言 Q:为什么要用双指针? A:因为 通过使用双指针可以使算法的时间复杂度降低(或者降低遍历次数),有时也能降低空间复杂度 分类 根据双指针的用法,可分为前后双指针,头尾双指针,快慢双指针..... 前后双指针 应用一 删除排序数组中的重复项 要求:原地删除,并返回新数组的长度,不需要考 ......
指针 算法

[算法]按位异或^的种种玩法

本文使用C语言 什么是按位异或^ 首先将不同数制的数写成二进制,例如9->0b1001. 然后最末位对齐,依次按位异或. 规则:0 ^ 0= 0 ; 1 ^ 1 = 0; 1 ^ 0 = 1 推论:任意整数x,都有0^x = x ; x ^ x = 0\ 来看看应用 寻找一个单身狗数 像[1,3,2 ......
玩法 算法

点云配准算法-旋转矩阵估计-Kabsch-Umeyama algorithm

Kabsch-Umeyama algorithm 参考文献: https://www.wikiwand.com/en/Kabsch_algorithm 面向点云配准,最小化两点集均方根误差(RMSD, root mean squared deviation)来计算最佳旋转矩阵。 注:该算法只能计算旋 ......

CUDA矩阵乘法算法分析

CUDA矩阵乘法算法分析 矩阵乘法是科学计算的基本构建块。此外,矩阵乘法的算法模式具有代表性。许多其他算法与矩阵乘法共享类似的优化技术。因此,矩阵乘法是学习并行编程中最重要的例子之一。 CUDA 矩阵乘法的源代码可在 gitlab 上找到。建议使用 git 获取源代码,它允许提取可能提供的任何更新, ......
乘法 矩阵 算法 CUDA

实现在Java环境中使用SM2加密算法

在Java环境中使用SM2加密算法,主要涉及两个步骤:引入SM2相关的库并使用其公开的API进行开发,和实际使用SM2加密、解密等功能。 引入并使用SM2相关库 我们可以选择使用BouncyCastle库,它提供了广泛的加密和哈希函数,包括SM2。首先,要在项目中引用BouncyCastle库,这可 ......
算法 环境 Java SM2 SM

算法训练day23 LeetCode669.108.538.

算法训练day23 LeetCode669.108.538. 669.修剪二叉搜索树 题目 669. 修剪二叉搜索树 - 力扣(LeetCode) 题解 代码随想录 (programmercarl.com) 递归 不能单纯地由根节点的值直接删除单值,需要继续判断子节点是否符合条件 class Sol ......
算法 LeetCode day 108 669

小批量梯度下降

在小批量梯度下降中,试分析为什么学习率要和批量大小成正比 在标准的梯度下降中,参数的更新公式是: θ=θ−η∇θJL(θ)\theta = \theta - \eta \nabla_\theta JL(\theta)θ=θ−η∇θ​JL(θ) 其中,η\etaη 是学习率,∇θJL(θ)\nabla ......
梯度