刷新
算法~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关系不大,主要思路是三分法,和二分法非常类似,但没有二分法常用,主要用途是用来求单峰函数的极值 对于任意一个上凸函数,选取 ...

图论——最短路 学习笔记

博主头像 图论——最短路 学习笔记 其实是复习性质的,主要是总结,证明什么的,等上大学再说。 定义 单源最短路:从一个点 \(q\) 出发,到其他所有点的最短路。 全源最短路:任意两点见最短路。 算法对比 算法 Floyd Johnson Bellman–Ford SPFA Dijkstra 类型 全源 全源 ...

从BST到LSM的进阶之路

博主头像 相信大家之前都了解过很多种数据结构,我之前总是两两的,也就是从局部上去进行比较,没有从整体上进行这些树的发展脉络进行梳理,因此经常看完没多久就忘了。看来确实是需要从本源出发,不仅要知其然还要知其所以然,了解清楚前因后果,不仅可以方便我们记忆,更有利于增加我们的理解深度。实际上任何事物的出现都是有他出... ...

20231112多校模拟T2

博主头像 题目描述 给你下列7种形状,问恰好填满 \(n*2\) 的方格有多少种方案(每种形状可任意旋转) 后三种形状纯粹是出题人的恶趣味,d用没有 做法一:暴力 不会 做法二:递推 定义: f[i] 为填满 \(i*2\) 的方格的方案数 g[i] 为填满 \(i*2\) 的方格 不能被腰斩 的方案数 解释 ...

AtCoder Beginner Contest 328

博主头像 A - Not Too Hard (abc328 A) 题目大意 给定\(n\)个数字和一个数 \(x\)。 问不大于 \(x\)的数的和。 解题思路 按找要求累计符合条件的数的和即可。 神奇的代码 #include <bits/stdc++.h> using namespace std; usin ...

高效利用队列的空间

博主头像 大家都知道队列是可以用数组来模拟的,可以先开辟一段定长的数组空间,然后分别使用两个变量head和tail来代指队列的头和尾,从而维护整个队列,相信到这里大家都比较熟悉。不过这种做法是有弊端的,比如说下图这种情况 假设经过不断地增删元素,Head和Tail已经来到了数组最后两个位置,这时候整个队列中只 ...

前缀和 差分

博主头像 前缀和 前缀和定义 对于数列A,它的前缀和数列S[i]就表示数列A从第一个元素到第i个元素的总和。 计算公式 // 前缀和数列S 原数列A S[i] = S[i - 1] + A[i]; //S[i - 1] 表示i-1个元素的和加上A[i],就构成了前i个元素的和S[i] 具体应用 前缀和的主要用 ...

02-异或算法

博主头像 2. 异或算法 2.1 异或基础 0^N == N N^N == 0; 记为无进位相加即可,1+1 = 0; 异或运算满足交换律和结合。 2.1.1 不用额外变量交换两个数 解法:aba = b,abb = a。 2.1.2 找出现奇数次的数 1. 题目 ​ 一个数组中有一种数出现了奇数次,其他数都 ...

FHQ Treap学习笔记

博主头像 FHQ Treap,其中 FHQ 指范浩强神犇,是依赖于分裂合并操作实现的 Treap,这种操作方式使得它天生支持维护序列、可持久化等特性 ...

从[SDOI2011]消防 到[NOIP2007]树网的核

博主头像 有关消防一题中最优解一定在直径上的证明 P2491 [SDOI2011] 消防 P1099 [NOIP2007 提高组] 树网的核 题目描述 在一颗 \(n\) 个节点的无根树中,找到一条不超过 \(s\) 的路径,使得图中所有点到此路径距离的最大值最小,图中边权非负 分析 若想将此题转化到树网的核 ...

【调度算法】并行机调度问题遗传算法

问题描述 m台相同的机器,n个工件,每个工件有1道工序,可按照任意的工序为每个工件分配一台机器进行加工 工件 A B C D E F G H I 工件编号 0 1 2 3 4 5 6 7 8 加工时间 4 7 6 5 8 3 5 5 10 到达时间 3 2 4 5 3 2 1 8 6 交货期 10 ...

队列(Queue):先进先出(FIFO)的数据结构

博主头像 队列是一种基本的数据结构,用于在计算机科学和编程中管理数据的存储和访问。队列遵循先进先出(First In, First Out,FIFO)原则,即最早入队的元素首先出队。这种数据结构模拟了物理世界中的队列,如排队等待服务的人。 在本篇博客中,我们将详细介绍队列的概念、用途、实现以及如何在编程中使用 ...

【LGR-161-Div.3】洛谷基础赛 #4 P9688 Colo.

博主头像 原题链接:P9688 Colo. 很显然,能够共存的颜色一定不会相交,所以可以记录每个颜色最左边的位置和最右边的位置,我们对于每个颜色只考虑,这个颜色左边的可以和这个颜色共存的额颜色 用f[i][j]表示当前考虑i这种颜色,选i这种颜色,然后在i这种颜色之前(包括这种颜色)一共选了j种颜色的最大价值 ...

<1···121314···32>