自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 学习清单

每当我找不到方向的时候我就会来这里看看。 真的什么都不会啊! 不知道半年能不能完成目标 。 动态规划专题 线性DP 背包 计数DP 区间DP 概率DP 期望DP 树形DP 换根DP 凸优化 数位DP 轮廓线DP 斜率优化 计算几何 凸包 扫描线 旋转卡壳 半平面交 圆的反演 最小覆盖圆 数学 数论 类欧几里得 二次剩余 唯一分解定律 广义欧...

2020-10-27 23:34:05 525 2

原创 外部排序【java 实现】

外部排序是一种把大量无序的数据,按一定的顺序排序的算法。它是一种非常适合处理海量数据的算法,其原理主要有以下几点:首先,将所有要排序的数据分割成若干个较小的子文件,每个子文件只有少量的内存可以容纳,然后分别在每个子文件中进行内部排序,最后再把每个排好序的子文件合并起来即可完成排序。将每个子文件中的数据以某种顺序读取到内存缓冲区中,这个缓冲区的大小要比每个子文件的大小要小,但又大到可以容纳所有数据。

2023-02-19 20:37:42 823 4

原创 java设计模式

设计模式 创建型模式 创建型模式 这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。 工厂模式(Factory Pattern) 步骤 1 创建一个接口: Shape.java public interface Shape { void draw(); } 步骤 2 创建实现接口的实体类。 Rectangle.java public class Rectangle implements

2022-03-22 12:02:48 248

原创 【Day 8】Golang语法学习 ---2022年1月5日

Reader io 包指定了 io.Reader 接口,它表示从数据流的末尾进行读取。 Go 标准库包含了该接口的许多实现,包括文件、网络连接、压缩和加密等等。 io.Reader 接口有一个 Read 方法: func (T) Read(b []byte) (n int, err error) Read 用数据填充给定的字节切片并返回填充的字节数和错误值。在遇到数据流的结尾时,它会返回一个 io.EOF 错误。 示例代码创建了一个 strings.Reader 并以每次 8 字节的速度读取它的输出。 r

2022-01-05 14:34:54 460

原创 【Day 7】Golang语法学习 ---2022年1月4日

Stringer fmt 包中定义的 Stringer 是最普遍的接口之一。 type Stringer interface { String() string } Stringer 是一个可以用字符串描述自己的类型。fmt 包(还有很多包)都通过此接口来打印值。 stringer.go package main import "fmt" type Person struct { Name string Age int } func (p Person) String() string

2022-01-05 09:43:35 297

原创 【Day 6】Golang语法学习 ---2022年1月1日

接口值 接口也是值。它们可以像其它值一样传递。 接口值可以用作函数的参数或返回值。 在内部,接口值可以看做包含值和具体类型的元组: (value, type) 接口值保存了一个具体底层类型的具体值。 接口值调用方法时会执行其底层类型的同名方法。 interface-value.go package main import ( "fmt" "math" ) type I interface { M() } type T struct { S string } func (t *T) M()

2022-01-05 09:41:53 268

原创 【Day 5】Golang语法学习 ---2021/12/31

选择值或指针作为接收者 使用指针接收者的原因有二: 首先,方法能够修改其接收者指向的值。 其次,这样可以避免在每次调用方法时复制该值。若值的类型为大型结构体时,这样做会更加高效。 在本例中,Scale 和 Abs 接收者的类型为 *Vertex,即便 Abs 并不需要修改其接收者。 通常来说,所有给定类型的方法都应该有值或指针接收者,但并不应该二者混用。(我们会在接下来几页中明白为什么。) methods-with-pointer-receivers.go package main import ( "

2022-01-01 10:26:32 186

原创 【Day 4】Golang语法学习 ---2021/12/30

range(续) 可以将下标或值赋予 _ 来忽略它。 for i, _ := range pow for _, value := range pow 若你只需要索引,忽略第二个变量即可。 for i := range pow range-continued.go package main import "fmt" func main() { pow := make([]int, 10) for i := range pow { pow[i] = 1 << uint(i) // =

2021-12-30 20:57:59 275

原创 【Day 3】Golang语法学习 ---2021/12/29

切片文法 切片文法类似于没有长度的数组文法。 这是一个数组文法: [3]bool{true, true, false} 下面这样则会创建一个和上面相同的数组,然后构建一个引用了它的切片: []bool{true, true, false} slice-literals.go package main import "fmt" func main() { q := []int{2, 3, 5, 7, 11, 13} fmt.Println(q) r := []bool{true, false,

2021-12-29 22:58:44 148

原创 【Day 2】 Golang语法学习 ---2021/12/28

变量 var 语句用于声明一个变量列表,跟函数的参数列表一样,类型在最后。 就像在这个例子中看到的一样,var 语句可以出现在包或函数级别。 variables.go package main import "fmt" var c, python, java bool func main() { var i int fmt.Println(i, c, python, java) } 程序结果: 0 false false false 变量的初始化 变量声明可以包含初始值,每个变量对应一个。

2021-12-28 21:03:28 266

原创 【Day 1】TOFEL词汇---2021/12/28

chihuahua n. 吉娃娃 nonetheless adv. 尽管如此 inconclusive adj.非决定性的 commonplace adj. 平凡的事 n.常见的事 briefly adv.简要地 affluent adv.富裕的 concertina n. 六角手风琴 predatory adj. 捕食性的 harness v. 控制,利用 sprout v.发芽 n.苗 inedible adj. 不能吃的 lizard n. ...

2021-12-28 18:58:35 189

原创 【Day 1】Golang语法学习 ---2021/12/27

程序是在Go 语言指南网站跑的 hello,world 基本输出 hello.go package main import "fmt" func main(){ fmt.Println("Hello , world!") } 程序结果: Hello , world! sandbox sandbox.go package main import ( "fmt" "time" ) func main() { fmt.Println("Welcome to the playground!.

2021-12-27 22:39:07 232

原创 第二场周赛赛后题解

不提供代码,赛后自己好好想哈。 T1 一个一个匹配也行,看能不能匹配到末尾。 T2 状压dp 首先 n个点 n−1次走完,明白这个过程其实是一条链,每个点只有被经过和没被经过两个状态,所以典型状压dp 对于状态 i,转成二进制数形式,第 k位对应 0或 1,对应为 1时表示这个点已经被经过,对应 0则表示没有 (怎么定义都行,只要逻辑没问题就OK)定义dp数组 f[i][j][k]f[i][j][k]f[i][j][k], i状态表示如上,j表示当前停在 j这个点上, k有0,1,2,30,1,2,30,1

2021-11-21 16:02:08 424 2

原创 考研作文必背作文整理

我会整理自己要背熟的作文,呜呜,考场上要45分钟写两篇作文一篇100词,另一篇200词左右,太为难我这个英语弱鸡QWQ了 作文A 书信篇 Dear sir or madam, Moved by the noble cause of Project Hope and encouraged by what has been achieved so far, I would like to contribute my bit to the project by offering a financial .

2021-11-20 14:47:19 300

原创 禁忌搜索学习笔记

什么是禁忌搜索? 禁忌搜索(Tabu Search,TS,又称禁忌搜寻法)是一种现代启发式算法,由美国科罗拉多大学教授Fred Glover在1986年左右提出的,是一个用来跳脱局部最优解的搜索方法。其先创立一个初始化的方案;基于此,算法“移动”到一相邻的方案。经过许多连续的移动过程,提高解的质量。 算法简介 禁忌(Tabu Search)算法是一种亚启发式(meta-heuristic)随机搜索算法,它从一个初始可行解出发,选择一系列的特定搜索方向(移动)作为试探,选择能够实现让特定的目标函数值变化最多的

2021-05-31 16:58:09 5350

原创 模拟退火学习笔记

什么是模拟退火 模拟退火算法(Simulate Anneal,SA)是一种通用概率演算法,用来在一个大的搜寻空间内找寻命题的最优解。模拟退火是由S.Kirkpatrick, C.D.Gelatt和M.P.Vecchi在1983年所发明的。V.Černý在1985年也独立发明此演算法。模拟退火算法是解决TSP问题的有效方法之一。 简单说,模拟退火是一种随机化算法。当一个问题的方案数量极大(甚至是无穷的)而且不是一个单峰函数时,我们常使用模拟退火求解。 降温 实现过程 T —— 温度 Δx—— 解变动值 x

2021-05-31 16:53:14 559

原创 谢谢,有被甜到

P3353 在你窗外闪耀的星星 飞逝的的时光不会模糊我对你的记忆。难以相信从我第一次见到你以来已经过去了 3 年。我仍然还生动地记得,3 年前,在美丽的集美中学,从我看到你微笑着走出教室,你将头向后仰,柔和的晚霞照耀着你玫瑰色的脸颊。我明白,我已经沉醉于你了。之后,经过几个月的观察和窥探,你的优雅与智慧,你对待生活的态度和你对未来的愿望深切地在我心中留下了印象。你是迷人的阳光女孩,我总是梦想着与你分享余生。唉,实际上你远远超过了我最疯狂的梦想。我不知道如何桥起我与你之间的鸿沟。所以我没有任何计划,仅仅只是等

2021-05-07 10:52:29 235

原创 java 在算法竞赛的使用

写在前面 这是一篇万字长文!!! 我发现用java 做复杂算法题的人真的很少很少,其实Java是一门很优秀的语言,利用好Java的特性,java的自带的一些方法(函数)可以帮助我们快速实现一些复杂的复杂的算法。 本文适用于具有一定算法基础的c++竞赛选手速成Java,所以里面出现的具体算法模板不会作出解释,希望大家能充分利用网络资源学习算法吧。 java 所具有的大整数用法 题目案例:求ABmodPA^BmodPABmodP 这里还有自带快速幂方法,舒服。 用c++自己实现一个大整数结构体挺累的,如果模数不

2021-04-02 01:04:55 951 1

原创 【莞工oj原创题目】蓝桥杯国赛特训---奖学金 【题解】

奖学金 抱歉,题目表述有误,导致一些同学读错题目了。但是审核又通过了就改不了题目内容了。 抱歉抱歉! 输入的内容应该是接下来1−n1 - n1−n行 ,每行有1到m个数1到m个数1到m个数 常规解法1:动态规划 时间复杂度O(N4)O(N^4)O(N4) 一个人时 对于单人,一个经典的题目:走方格 我们知道的DP做法,f(i,j)=max{f(i,j−1),f(i−1,j)}+a[i][j]f(i,j)=max\{f(i,j-1),f(i-1,j)\}+a[i][j]f(i,j)=max{f(i,j−1)

2020-10-30 23:43:26 2419 4

原创 动态区间第k小【主席树套树状数组 模板】

P2617 Dynamic Rankings 我们知道主席树有静态查询第k小的优良性质。 对于动态查询我们当然可以暴力修改,但是主席树暴力修改的会卡成屑。 所谓动态区间第k小呢,就是支持修改原数组的操作。 树状数组 权值线段树 可持久化线段树(主席树) 会静态区间第k小(主席树的解法) 请确保以上都熟练才看得懂模板 因为这个是核心思想就是利用树状数组前缀和的性质与主席树的求静态区间第k小 注意:主席树的是离线操作的,还有就是原数组要进行离散化,所以我们是需要询问保存下来的。 #include<b.

2020-10-29 18:30:55 410

原创 《算法分析与设计》实验一到六

实验一 归并排序求逆序对 原理:归并排序是采用分治的方法,均摊了每一段的时间复杂度 时间复杂度为O(nlogn)O(nlogn)O(nlogn),空间复杂度为O(n)O(n)O(n) 原理在装进新数组的时候记录逆序对的个数 比如当a[i]>a[j]a[i]>a[j]a[i]>a[j] 分界点为midmidmid 那么这一段的逆序对数量 为mid−i+1mid-i+1mid−i+1 结果: #include<bits/stdc++.h> using namespace std;

2020-10-02 18:53:07 946 2

原创 《算法与数据结构实践专题》 任务书及题目汇总【醒目】【业界良心】

写在前面: 数据结构什么的早就不是问题,就当自己巩固一下基础吧,也防止后期同学们一个一个细节问啊问,本来就要求写一个就好了,鬼知道我的学号对应的是最简单的,无趣,那么还是全部做一遍吧,仅供参考呀,不要抄袭啊QWQ。全部代码都在GNU 9.0通过。 还有本人代码偏竞赛风格:能简单绝不繁。看不懂不要打我啊! 一、实践专题目的 熟悉各种数据结构和运算,会使用数据结构的基本操作解决一些实际问题。 二、实践专题要求 在本次实践专题过程中要求学生: (1)重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一

2020-06-15 15:35:30 3100 2

第一周练习exercise

接近焦虑,接近角度

2024-01-15

视频字幕本地文字识别CPU版

视频字幕本地文字识别CPU版

2024-01-15

heapsort.cpp

堆排序(Heapsort)是指利用堆这种数据结构(后面的【图解数据结构】内容会讲解分析)所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序可以说是一种利用堆的概念来排序的选择排序。分为两种方法: 大顶堆:每个节点的值都大于或等于其子节点的值,在堆排序算法中用于升序排列; 小顶堆:每个节点的值都小于或等于其子节点的值,在堆排序算法中用于降序排列;

2019-10-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除