刷新
区间合并

博主头像 一、题目来源 AcWing算法基础课-803.区间合并 二、题目描述 给定 \(n\) 个区间 \([l_i,r_i]\),要求合并所有有交集的区间。 注意如果在端点处相交,也算有交集。 输出合并完成后的区间个数。 例如:\([1,3]\) 和 \([2,6]\) 可以合并为一个区间 \([1,6] ...

离散化

博主头像 一、算法描述 本篇文章介绍离散化。 什么是离散化? 对于一个数组 \(a\) 来说,他是升序的,其中数字范围很大,例如 \(-10^9\)~\(10^9\)。 但是,数字的个数很少,只有 \(0\)~\(10^5\)。 那么这种情况下就没有必要将数组开得很大从而导致浪费空间,而只需要将每一个数字进行 ...

位运算

博主头像 一、算法描述 本篇文章介绍位运算,直接从用法方面来介绍。 求第 K 位 将第 \(k\) 位移到最后面。 &1 即可。 所以操作为:n >> k & 1 求最后一个 1(求 1 的个数) \(x\) = \(1010...100...0\) ~\(x\) = \(0101...011...1\) ~ ...

AtCoder Beginner Contest 329

博主头像 劳累一天不该写题,启发式合并都写错了 A - Spread (abc329 A) 题目大意 给定一个字符串,将每个字符输出出来,中间留个空格。 解题思路 遍历输出即可。 神奇的代码 #include <bits/stdc++.h> using namespace std; using LL = lo ...

判断子序列(双指针)

博主头像 一、题目来源 AcWing算法基础课-2816.判断子序列 二、题目描述 给定一个长度为 \(n\) 的整数序列 \(a_1,a_2,…,a_n\) 以及一个长度为 \(m\) 的整数序列 \(b_1,b_2,…,b_m\)。 请你判断 \(a\) 序列是否为 \(b\) 序列的子序列。 子序列指序 ...

与哈希表相关的专业名词! 一文搞懂!

刚接触哈希的时候, 哈希表(hash table)、哈希(hashing)、哈希函数(hash function)、哈希算法(hashing algorithm)、字典(dictionary)、键(key)、值(value)、索引(index)、哈希码(hash code)、哈希值(hash val ...

数组元素的目标和(双指针)

博主头像 一、题目来源 AcWing算法基础课-800.数组元素的目标和 二、题目描述 给定两个升序排序的有序数组 \(A\) 和 \(B\),以及一个目标值 \(x\)。 数组下标从 \(0\) 开始。 请你求出满足 \(A[i] + B[j] = x\) 的数对 \((i,j)\)。 数据保证有唯一解。 ...

最长连续不重复子序列(双指针)

博主头像 一、算法描述 含义 双指针,指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个相同方向(快慢指针)或者相反方向(对撞指针)的指针进行扫描,从而达到相应的目的。 另外还可以根据序列进行区分,例如在快排中,双指针指向的是同一个序列,而归并排序中两个指针指向的是两个不同的序列。 怎么用 ...

二分查找图解

博主头像 二分查找图解 使用二分查找的前提是所给的元素集合必须是单调的。 注意:本文图文并茂 将提供以下图文链接供大家理解: 图文链接: 飞书图解链接 密码:2k851&54 整数二分 查找最后一个小于等于q的元素的下标 模板代码,展开查看 int last(int q){ int l = -1, ...

动态规划

博主头像 动态规划 动态规划(Dynamic Programming,简称DP)。动态规划分为线性dp、树形dp、数位dp等等。 注意:本文图文并茂 将提供以下图文链接供大家理解: 图文链接: 飞书图解链接 密码:335#47C4 1. dp起源 数字三角形 P1216 [USACO1.5] [I ...

二分查找

博主头像 一、二分查找介绍 首先使用二分法的前提是这个数组或者序列是排好序的。对于一个排好序的数组(升序),如果要让我们从中找一个指定的数并输出它的下标,我们可以直接暴力枚举,时间复杂度为O(n),当我们使用二分查找的时候它的时间复杂度为O(log n) 二分法的核心思想就是:每次都将查询的范围缩小一半 还是 ...

NEFU OJ Problem1487 时空乱流题解

博主头像 时空乱流 Problem:E Time Limit:1500ms Memory Limit:65535K Description 星际飞行员Alice在一次航行中遭遇了时空乱流,时空乱流将导致Alice乘坐的飞船在n个位面之间穿梭。 星际宇航局管理员Bob收到了Alice的求救信号,决定在某些位面上 ...

Pooling与马赛克的秘密

博主头像 说到Pooling,相信学习过CNN的朋友们都不会感到陌生。Pooling在中文当中的意思是“池化”,在神经网络当中非常常见,通常用的比较多的一种是Max Pooling,具体操作如下图: 结合图像理解,相信你也会大概明白其中的本意。不过Pooling并不是只可以选取2x2的窗口大小,即便是3x3, ...

行转列--将多行数据转成多行多列的Table结构

博主头像 功能描述 21年做的一个功能,涉及到将行数据转化成列数据。边查边做,一点一点的尝试着做好。当时感觉有点吃力。完成之后本想记录,但一直拖延至今。最近再次接手与这个功能相关的业务,整理了之前写的代码,趁此机会记录下来。 功能界面 界面中是一个三级结构:L1级【Test Sample】, L2级【ABV, ...

算法~totp用作签名防止url被复用

博主头像 之前写过关于totp的文章,对它的基础有不清楚的同学,可以先看我的这篇文章《TOTP基础一》《TOTP基础二》 想到的问题 因为totp是把时间分成了一个一个小的时间窗口,当生成totp的服务器和校验totp的服务器不在一起时间窗口,就会出现验证失败的问题,这是不可避免的,时间戳是一个long类型的 ...

珂学家——珂朵莉树 学习笔记

博主头像 珂学家——珂朵莉树 学习笔记 珂朵莉树(Chtholly Tree),又名老司机树 ODT(Old Driver Tree)。 起源自 lxl 的 CF896C Willem, Chtholly and Seniorious。 前置知识:std::set。 思想 将区间用 set 维护,每次对一个区 ...

数据结构与算法 | 动态规划算法(Dynamic Programming)

博主头像 上一篇文末已经提到了记忆化搜索是动态规划(Dynamic Programming)的一种形式,是一种自顶向下(Top-Down)的思考方式;既然动态规划有自顶向下(Top-Down)的递归形式,自然想到对应的另外一种思考方式自底向上( Bottom-Up )。什么是自底向上的思考?不空谈理论... ...

算法~base64算法理解

博主头像 base64 Base64 是一种用于将二进制数据编码成 ASCII 字符的编码方式。它主要用于在文字环境中传输或存储二进制数据,如在电子邮件、XML 文件、URL 参数等。Base64 编码不是一种加密算法,而是一种编码方式,其主要作用是将二进制数据转换为文本数据,以便更容易在文本协议中处理。 B ...

在思想方面讨论堆排序(考研自用,按非递减方式排序)

博主头像 目录 1.什么是排序 2.关于堆排序的几个问题 3.问题求解首先:排序的定义 拿冒泡排序(递增)来讲,在一个给定的数组序列中,若A[i+1]<A[i],则将其两个的数值进行交换,排好序的序列应该是递增的,类似于[1,2,3,4,5...]; 所以排序是在数组中进行的,物理内存的数值发生了永久性的变化 ...

【课程】算法设计与分析——第八周 题解笔记

博主头像 第八周 算法题解笔记 1极值点 题目描述 给定一个单峰函数f(x)和它的定义域,求它的极值点 该单峰函数f(x)保证定义域内有且只有一个极值点,且为极大值点 题解 本题感觉和dp关系不大,主要思路是三分法,和二分法非常类似,但没有二分法常用,主要用途是用来求单峰函数的极值 对于任意一个上凸函数,选取 ...

<1···111213···31>