算法 笔记18

算法笔记(6)数列分块

原发表于我的博客 前言 分块不能说是一种数据结构,它是一种思想,无论是数列分块,块状链表,还是数论分块,莫队算法,都应用了分块的思想。 本文主要介绍狭义上的分块,即数列分块。 数列分块的引入 数列分块可以说是暴力,一种优美的暴力,它的基本思路是,把数列分成若干块(一般取\(\sqrt n\)),分块 ......
数列 算法 笔记

算法笔记(5)贪心算法

原发表于我的博客 贪心算法 贪心与其说是一种算法,不如说一种思想。 贪心思想,顾名思义,就是总是做出当前最好的选择,这种方式可能在全局上不是最好的结果,但是在一些题目中就可以直接用。 最简单的例子就是“货比三家”,在生活中,我们买东西时都会挑性价比最优的,这就是一种贪心。 贪心算法在OI中经常与其他 ......
算法 笔记

算法笔记(4)莫队算法入门

原发表于我的博客 前言 本来想学完回滚莫队、树上莫队、二离莫队之后一起写一个博客,但是一直学不会/kk,只好把已会的普通莫队和带修莫队写了(以后会补上的) 普通莫队 莫队——优雅的暴力 莫队算法的引入 例题: 给定一个数列和若干询问,每次询问询问一段区间内不同种类数字的个数。 暴力做法 每次询问暴力 ......
算法 笔记

算法笔记(3)模拟退火

原发表于个人博客= 模拟退火的引入 假如我们有一个函数,要求它的极大值,怎么求呢? 如果这个函数满足单调性,可以用二分的方法。 如果这是一个单谷(或单峰)函数,可以用三分法。 那要是多峰函数怎么半呢? 这时就可以用随机化算法。 一种朴素的方法是:每次在当前找到的最优方案\(x\)附近寻找一个新方案。 ......
算法 笔记

算法笔记(2)FHQtreap

原发布于我的个人博客 前言 FHQtreap绝对是平衡树里最好写,最实用的,他几乎能做所有splay或其它平衡树能做的事,还能可持久化! 这篇文章将会介绍FHQtreap的基本操作和维护区间的操作,并附上例题。 基本操作 FHQtreap的基本操作只有两个,分裂和合并。 有些读者可能会问,分裂和合并 ......
算法 FHQtreap 笔记

K-medoids聚类算法

发展: 们每次选簇的平均值作为新的中心,迭代直到簇中对象分布不再变化。因此一个具有很大极端值的对象会扭曲数据分布,造成算法对极端值敏感 在聚类分析中,异常值通常会引起问题,因为它们可能会被分配到一个独立的聚类,从而干扰正常的聚类结果。这可能导致聚类算法产生不合理或不稳定的结果 定义: K-Medoi ......
算法 K-medoids medoids

算法笔记(1)线段树

原发表于个人博客。 前言 线段树,是数据结构皇冠上的明珠(我编的)。 它用途广泛,被一代代的oier应用,改进,优化。 本文介绍了线段树的基础知识和各种拓展(包括权值线段树,可持久化线段树),各种优化方式(包括zkw线段树,动态开点,离散化),希望能帮到更多的oier。 在学习线段树前,默认你应该学 ......
线段 算法 笔记

算法-共识算法

一、Paxos 基础的Paxos算法包括如下三种:Basic Paxos、Multi Paxos、Fast Paxos Paxos将系统中的角色分为提议者 (Proposer),决策者 (Acceptor),和最终决策学习者 (Learner): 【Proposer】:提出提案(Proposal)。 ......
算法 共识

【学习笔记】莫队

0 前言 前置知识: 会打暴力。 简单的分块或根号思想。 二次离线莫队不会,就不写了。 1 普通莫队 不妨直接上一个例题来看看,通过题目来直接引入莫队:题目链接。 题意:给定一个长度为 \(n\) 的数列 \(n\),\(m\) 次询问区间 \([l,r]\) 中的不同数字数。 我们不妨设置两个指针 ......
笔记

【学习笔记】线段树合并

前置知识:动态开点权值线段树。 线段树合并,顾名思义,就是将两棵权值线段树合并在一起。为什么不把两棵普通的线段树合并呢?因为那样好像没啥用。 我们知道,权值线段树支持着查询某个数的个数、查询第 \(k\) 大/小的数等操作,有了合并操作之后就可能会支持一些令人意想不到的操作。 放张图,可以帮助理解下 ......
线段 笔记

【学习笔记】数论——同余相关

0 前言 闲的没事的时候可能会摸鱼写一写,都是些非常基础的东西。 最高大概会写到 exCRT 和 exBSGS 吧,阶和原根往后的我也不会了,但是前面的内容会时不时来补充。 为了方便偷懒,许多定理不会给出证明。 1 基本概念 \(\gcd(a,b)\) 或者 \((a,b)\):\(a,b\) 的最 ......
数论 笔记

【学习笔记】莫比乌斯反演

前言/声明 首先,本人的数论水平极低,目前莫反只是刚刚入门的水平,此博客的主要作用是用于记录本人的学习过程,真的想要深入了解莫反的话这边推荐 cmd 大佬的博客(点这里),应该对你有更大帮助。 建议学习的时候能多理解些就多去理解,少硬记些结论,这样更不容易忘记。 前置知识:最基础的数论。 0 基本定 ......
笔记

【学习笔记】01 分数规划

分数规划问题,大概就是一类求解分式最值的问题。 比如下面这个问题:给定 \(n\) 个物品,每个物品有两个属性 \(a\) 和 \(b\),保证均为正数,从中选出若干个出来,要求最小化(也可能是最大) \(\frac{\sum a}{\sum b}\)。 当然还可能有一些奇怪的其他要求,比如限制分子 ......
分数 笔记

【学习笔记】FHQ-Treap

前置知识:二叉搜索树与二叉堆。 1. 简介 Treap,即 Tree+Heap,它的每个结点上存储着一个索引 \(key\) 和一个值 \(val\),其中索引满足二叉堆的性质,值满足二叉搜索树的性质,且索引是随机的。Treap 就是通过上述的性质,使树达到平衡。 至于为什么索引是随机的,其实很简单 ......
FHQ-Treap 笔记 Treap FHQ

学习笔记429—装双系统出现错误【Invalid signuature detected. If this error persists. seek technical assistance】

装双系统出现错误:Invalid signuature detected. If this error persists. seek technical assistance 1)出现Invalid Signature detected Check Secure Boot Policy错误,是因为b ......

【学习笔记】Splay

前置知识:二叉排序树(BST)。 基本操作 首先我们要维护下面这几个东西: int fa[maxn],siz[maxn],val[maxn],ch[maxn][2],cnt[maxn],root,tot; //fa:当前点父亲 siz:以当前点为根子树大小 val:权值 ch:左右儿子 cnt:当前 ......
笔记 Splay

manacher算法

manacher算法 斯♥哈♥学长的博客https://www.cnblogs.com/luckyblock/p/17044694.html#5140558 为什么老师叫他马拉车算法/yiw 简介 我们都知道,求最长回文子串可以枚举每一个开始的点,然后直接一个一个比较就完事,但这样的复杂度是接近 \ ......
算法 manacher

每日总结10.18

今天是充实的一天,我上了三节英语课,其中我们讨论了一系列有趣的主题,包括文学、文化和语法。这些课程帮助我更好地理解英语,提高了我的语言技能。下午,我投入时间学习Java编程。在这节课中,我学习了如何处理文件,特别是如何读取文本文件、分析文本数据和将结果写入另一个文件。我编写了一个程序,可以统计文本文 ......
10.18 10 18

C++U4-贪心算法1

本节学习目标:贪心算法的概念以及对应练习题 贪心算法概念 贪心算法的特点 利用贪心算法的两个性质 练习1:最优装载问题 【本题算法分析】 优先把重量小的物品放进去,在容量固定的情况下,装的物品量最多。因此采用重量最轻者先装的贪心选择策略,可从局部最优达到全局最优。 参考代码 #include <io ......
算法 U4

Hive学习笔记:多列求最大值、最小值

一、最大值 当在 Hive 中需要对多列数据求最大值时,可以使用函数 greatest(a, b, c, d) 实现。 select greatest(a, b, c) from ( select 10 as a, 20 as b, 30 as c ) dd; -- 结果:30 举个具体栗子:计算用 ......
最大值 笔记 Hive

学习笔记6

苏格拉底挑战 第三章 Unix/Linux 进程管理 一.知识点归纳 (一)多任务处理 多任务处理是所有操作系统的基础。总体上说,它也是并行编程的基础。 (二)进程的概念 进程是对映像的执行。 在操作系统内核中,每个进程用一个独特的数据结构表示,叫作进程控制块(PCB)或任务控制块(TCB)等。在本 ......
笔记

文心一言 VS 讯飞星火 VS chatgpt (119)-- 算法导论10.3 4题

四、用go语言,我们往往希望双向链表的所有元素在存储器中保持紧凑,例如,在多数组表示中占用前m 个下标位置。(在页式虚拟存储的计算环境下,即为这种情况。)假设除指向链表本身的指针外没有其他指针指向该链表的元素,试说明如何实现过程ALLOCATE-OBIECT和 FREE-OBJECT,使得该表示保持 ......
文心 导论 算法 chatgpt VS

CSAPP 第一章 笔记

硬件组成 总线 I/O设备 键盘,鼠标,显示器,磁盘... 主存 处理器(CPU) 寄存器 hello程序的生命周期 源文件hello.c 文本文件:位序列 字节:8个位为一组 ASCII码 可执行目标文件 Unix:通过编译器驱动程序完成 编译系统 预处理器 ‘#’,hello.i 编译器 ‘ma ......
笔记 CSAPP

磁盘调度算法

1、FCFS调度--先来先服务 例如,I/O请求块的柱面的顺序如下:98,183,37,122,14,124,65,67 他请求的话,是这样一个图示: 就直接根据请求序列进行调度即可,但是吧,它看起来摆动幅度就很大,这样导致这种形式的调度的性能比较差; 2、SSTF调度--最短寻道时间优先 还是按照 ......
磁盘 算法

笔记:Qt开发之多线程同步互斥机制

目标:了解Qt多线程开发中常用的同步互斥类,使用场景和特点 实现线程互斥和同步常用的类 互斥锁:QMute、QMutexLocker 条件变量:QWaitCondition 信号量:QSemaphore 读写锁:QReadLocker、QWriteLocker、QReadWriteLock 1,QM ......
线程 机制 笔记

图书推荐管理系统Python+Django网页界面+协同过滤推荐算法

一、介绍 图书管理与推荐系统。使用Python作为主要开发语言。前端采用HTML、CSS、BootStrap等技术搭建界面结构,后端采用Django作为逻辑处理,通过Ajax等技术实现数据交互通信。在图书推荐方面使用经典的协同过滤算法作为推荐算法模块。主要功能有: 角色分为普通用户和管理员 普通用户 ......
算法 管理系统 界面 网页 Python

Go笔记(5)-String详解

String详解 Go中的字符串是一个字节的切片,可以通过将其内容封装在双引号中来创建字符串,Go中的字符串Unicode兼容的,并且是UTF-8编码,字符串是一些字节的集合 (1)创建字符串 str := "hello,WY" fmt.Println(str) (2)获取字符串长度len() fm ......
笔记 String

Go笔记(4)-流程控制

5.Go语言流程控制 程序流程的控制结构一般有三种,顺序结构,选择结构,循环结构 (1)选择结构 if语句 if流程控制与其他语言的if流程控制基本相同 package main import "fmt" /* 1、定义一个整数 2、通过if语句进行比较 */ func main() { //1、定 ......
流程 笔记

Docker操作笔记

Docker操作笔记 images保存 docker save -o ubuntu.tar(保存名) ubuntu:laster(名称:版本) docker save -o ubuntu.tar ubuntu:laster images导入 docker load -i ubuntu.tar ......
笔记 Docker

第三周阅读笔记|人月神话————为什么巴比伦塔会失败

巴比伦塔的管理教训巴比伦塔是人类继诺亚方舟之后的第二大工程壮举,但巴比伦塔同时也是第一个彻底失败的工程。 现在,其实也是这样的情况。因为左手不知道右手在做什么,所以进度灾难、功能的不合理和系统缺陷纷纷出现。随着工作的进行,许多小组慢慢地修改自己程序的功能、规模和速度,他们明确或者隐含地更改了一些有效 ......
神话 笔记