自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 数据结构之排序

如在数据表中各个元素的排序码互不相同,则称为主排序码。主排序码排序结果唯一,次排序码排序结果不唯一(考虑排序的稳定性)。内部排序:所有数据元素存放在内存外部排序:数据元素过多,不断在内外存之间移动排序的性能开销时间:O(n2n^2n2):直接插入排序,选择排序,冒泡排序O(nlogn):快速排序,堆排序,归并排序空间:(额外空间开销)稳定性也是重要的评判指标每步将一个待排序元素,按排序码大小,插入到前面已经排好序的一组元素适当位置上去,直到全部插入为止。直接插入排序原理:当插入第i(i>=1)个

2022-07-07 23:50:23 573

原创 数据结构之图

邻接矩阵邻接表使用条件:e

2022-07-01 13:17:55 332

原创 数据结构之搜索

基于关键码的搜索,搜索结果唯一。基于属性的搜索,搜索结构可能不唯一。静态搜索结构/动态搜索结构为了提高搜索速度,需要用特殊的组织方式来组织需要的搜索信息。衡量一个搜索算法时间效率的标准是ASL判定树判定树包括内部节点和失败节点(描述两个相邻元素不在表中的数据值的集合),如果搜索达到失败节点,说明搜索不成功可以用来辅助计算ASL到达失败节点的关键码比较次数等于层次编号-1顺序搜索ASLsucc=∑i=0n−1pi(i−1)ASL_{succ}=\sum^{n-1}_{i=0}p_{i}(i-1)

2022-06-13 20:04:32 504

原创 数据结构集合与字典

并查集用树形结构来表示元素和所属子集的关系find算法:Union操作为了得到两个集合的并,只要将表示其中一个集合的树的根节点置为另一个集合的树的根节点的子女即可。Union的加权规则如果以i为根的树中节点个数小于以j为根的树中节点个数,则让j成为i的父。加权后树的高度不超过⌊log2m⌋\lfloor log_{2}m\rfloor⌊log2​m⌋应用:等价类划分字典一对对的集合不同元素的key各不相同跳表0级链是包含所有元素的有序链表,第21,2∗21,3∗21...

2022-06-08 21:05:08 349

原创 数据结构之树

二叉树的性质:二叉树的存储:二叉树的数组存储:在编号时,如遇到空子树,假定此子树有编号二叉树的链表存储:二叉链表:三叉链表:含有n个节点的二叉链表中有n+1个空指针域,三叉链表则有n+2个用广义表建立二叉树中序遍历,其余遍历方式同理二叉树后序遍历的应用:计算二叉树节点个数,可以遍历根节点的左子树和右子树,分别计算出左子树和右子树的节点个数,然后把访问根节点的语句改为相加语句...

2022-06-07 19:19:47 163

原创 数据结构之数组,串,广义表

Loc(i,j,k)的计算特殊矩阵存储存储对称方阵时最多只需存储n(n+1)/2个元素下三角矩阵:Loc(i,j)=(i+1)∗i/2+jLoc(i,j)=(i+1)*i/2+jLoc(i,j)=(i+1)∗i/2+j上三角矩阵:Loc(i,j)=n+(n−1)+(n−2)+...+(n−i+1)Loc(i,j)=n+(n-1)+(n-2)+...+(n-i+1)Loc(i,j)=n+(n−1)+(n−2)+...+(n−i+1)=(2n−i−1)∗i/2+j=(2n-i-1)*i/2+j=(

2022-06-07 19:19:25 128

原创 数据结构线性表

顺序表

2022-05-31 16:44:21 108

原创 数据结构之栈和队列

栈括号匹配 void PrintMatchedParis(char *expression){ Stack<int> s(maxLenghth); int j,length=strlen(expression); for(int i=1;i<length;i++) { if(expression[i-1]=='(') s.Push(i); else if(expression[i-1]==')') { if(s.Pop(j)==true) co

2022-05-31 16:43:55 191

原创 《机器学习实战》读书笔记(第一部分:分类)

一、KNN原理:步骤:数据处理归一化计算已知类别数据集中的点与当前点之间的距离选取与当前点距离最小的k个点确定k个点所在类别出现的频率,返回频率最高的类别作为当前点的预测分类def classify0(inX,dataSet,labels,k): dataSetSize=dataSet,shape[0] ##tile函数用来复制一份inX数组的副本 ##dataSet是数据集,我们要求输入数据与数据集的欧氏距离 diffMat=tile(inX,(dataSetSize,1))-d

2022-05-23 17:57:17 293

原创 人工智能算法之python基础

一、numpy函数别人整理的numpy函数大全重点1.ndarray用各种routines创建各种样式的ndarray把任何东西,图片、音频、视频等当作矩阵看待,用矩阵运算去处理它

2022-05-05 13:51:05 2754

原创 蓝桥杯图论专项练习

拓扑排序v里面装的就是拓扑序结果类似于bfs的做法,用一个队列,先把入度为0的pop进去,再一个个扩展入度为0的节点。void topo(){ for(int i=1;i<=n;i++) { if(!in[i]) { q.push(i); } } while(!q.empty()) { int t=q.front(); q.pop();

2021-05-08 20:45:02 278

原创 蓝桥杯数论专项练习

数论gcd相关acwing 1246 等差数列公差其实就是所有数减去第一个数的最大公约数。首先,让0和其他数gcd,返回的是那个数本身。其次,对于求abc的gcd,就是gcd(gcd(a,b),c)。int d = 0;for(int i = 1; i < n; i ++) d = gcd(d, a[i] - a[0]);质数相关acwing1295 X的因子链数据范围问题:220=1e6左右要让因子链最长,那么a[i]/a[i-1]就要最小,最小一定是质数。根据质因子分

2021-05-07 22:47:57 629

原创 背包问题在这里!

1

2021-05-07 13:38:19 104

原创 蓝桥杯数据结构专项练习

并查集并查集模板数码管解法1 枚举每种集合用并查集判断是不是满足题意。解法2 枚举每种集合,从一个灯管开始bfs,看看能否到达所有的灯管。枚举的时候用二进制枚举经典食物链单调队列对顶堆线段树...

2021-05-06 21:18:57 259

原创 再读《挑战程序设计竞赛》——出类拔萃(4)

贪心与动态规划这是我在团队负责的部分,因此本文篇幅会很长,并且网络流和计算几何会先选择性跳过,在最近的比赛结束之后再慢慢补充叙述。几种常见的贪心策略贪心策略可以通过样例去尝试,写完以后写个暴力打表比对,比对成功就可以交了,不要花功夫去证明没时间。...

2021-05-06 15:54:30 272

原创 再读《挑战程序设计竞赛》——出类拔萃(3)

线段树这篇文章就是线段树模板和各类用法(懒标记,扫描线,可持久化,树套树)的大杂烩。

2021-05-04 18:45:43 149

原创 再读《挑战程序设计竞赛》——出类拔萃(1)(2)

二分前一部分满足条件A,后一部分满足条件A的补集,求这两者的分界点。有二分性再考虑二分。从书上例题出发讨论几个模拟的小技巧

2021-05-03 20:36:31 1320

原创 再读《挑战程序设计竞赛》——初出茅庐(6)

简单数论问题,归根结底有这么几个:质数问题(判断、筛法、分解、分解的几个常用结论)和约数问题快速幂、矩阵快速幂gcd,exgcd(同余方程组问题) 欧拉函数逆元高等数学相关:高斯消元、组合数问题其余更加复杂的数学问题在读高级篇的时候再说讲解部分参考了《算法竞赛进阶指南》和acwing的课程。质数的判定试除法,只要除到根号n就可以了,因为两数相乘等于n,一定一个大于等于根号n,一个小于等于根号n。bool is_prime(int x){ if(x<2)

2021-05-02 15:29:46 153

原创 再读《挑战程序设计竞赛》——初出茅庐(5)

他们其实都是“图”图的表示不多说,数组模拟邻接表的时候,一定要初始化h数组都为-1!!!int h[N],e[N],ne[N],idx;//idx是边的编号,h是第一条边,e是这条边的终点,ne是下一条边 void add(int a,int b)//把这条边插入a引出的链表最前面 { e[idx]=b; ne[idx]=h[a]; h[a]=idx++;} //遍历for(...

2021-05-01 09:46:17 132

原创 leetcode周赛237

1.仍然是一个hashmap的应用class Solution {public: bool checkIfPangram(string sentence) { unordered_map<char,int> hash; for(int i=0;i<sentence.length();i++) { hash[sentence[i]]++; } for(int i=0;i<

2021-04-26 21:45:30 98

原创 leetcode周赛236

1.水题class Solution {public: int arraySign(vector<int>& nums) { int neg=0; for(int i=0;i<nums.size();i++) { if(nums[i]==0) { return 0; } if(nums[i]&lt

2021-04-11 21:16:34 99

原创 leetcode周赛235

1.水题class Solution {public: string truncateSentence(string s, int k) { string t=""; if(k==0) return ""; else { int i=0; int cnt=0; while(i<s.length()&&cnt<k

2021-04-10 15:47:01 114

原创 leetcode周赛234

1.这道题主要知识点是hash的方法,要学会应用unordered_map做hash或者unordered_set去重。class Solution {public: int numDifferentIntegers(string word) { unordered_map<string,int> hash; string s=""; int i=0; while(i!=word.length()) {

2021-03-31 18:16:36 96

原创 南宁周赛第1周

认为比较水的题目就不说了。官方大佬也有详细的题解。hjm的卡牌游戏首先可能会想到RMQ相关,维护一个线段树保存区间和以及最大值,这样能方便查询每个区间的区间和减去最大值的结果。但是即便维护了这样的线段树,每个区间查询也需要n2的复杂度。所以这道题肯定需要一个性质优化复杂度。看到数据的范围【-30,30】,且如果最大值是非正数,区间和减去一定是负数了,那还不如L==R取0来的好,于是最大值一定是正数,我们从1开始枚举最大值,数组就只需要遍历一遍了。其次可能会想到双指针,因为是一个区间范围【l,r】嘛,

2021-03-29 21:20:07 225

原创 再读《挑战程序设计竞赛》——初出茅庐(3)

动态规划重点一是状态表示和集合的划分(思维的难点),二是边界问题的处理,三是巧妙利用递推式的形式,或者数据结构进行优化(代码实现中的难点)。状态表示需要题感,自己去试试,集合划分则需要寻找第一个不同的状态进行划分。...

2020-03-29 18:44:41 216

原创 再读《挑战程序设计竞赛》——初出茅庐(4)

加工并存储数据的数据结构重点平衡树(使用unordered_map,multiset,multimap),优先队列(手写堆)并查集平衡树用平衡树维护的数,集合,区间,会有一个很好的单调性,可以二分。一般用set维护平衡树(insert,find,erase,count)。用map维护键值对。//声明int为键,const char*为值map<int,const char*...

2020-03-29 17:11:42 162

原创 再读《挑战程序设计竞赛》——初出茅庐(2)

一往直前!贪心法贪心就是套方案或者数学证明呗,题做多了就有感觉了。贪心法的证明大致有3种:反证法数学归纳(比如,先列举一个最简单的情况,如果有大小关系,我们可以交换两个项,把结果的大小进行比较)A>=B且A<=B则A=B.我们一般把A当做我们的贪心解法,B当做最优解,显然A<=B,我们只需要证明A>=B即可、书上的题:区间调度问题:...

2020-03-25 16:13:05 248

原创 再读《挑战程序设计竞赛》——初出茅庐(1)

入门Ants这道题是后面说到的弹性碰撞问题,可以视为互相穿过运动。Physics Experiment(158页)高中的物理公式也很重要对于复杂的问题我们可以考虑有两个球的情况,和蚂蚁问题类似的,两球相撞以后他们就各自弹开,相当于继续按照原来的轨迹运动。抽签问题(二分+折半查找)O(n2logn)本题主要在于一个折半查找的预处理kc_{c}c​+kd_{d}d​=m-ka_{a}a...

2020-03-24 11:22:38 221

原创 美赛latex写作相关

一、引用宏这个在每个模板里都有,还有页眉页脚页数,不必赘述。\documentclass[final,3p,times]{elsarticle}\usepackage{graphicx, amssymb}\usepackage{amsthm}\usepackage{amsmath}\usepackage{epsfig}\usepackage{graphicx}\usepackag...

2019-12-16 23:19:41 850

原创 算法小技巧

标题

2019-11-16 05:20:26 604

原创 南宁周赛13周

第一题异或操作:相同为0,不同为1用1异或x能够使得x在0和1之间转换偶数个相同的数异或在一起等于0本题思路:本题是一个计数DP,突破口在于,当新的数加进来时,他的可能的值的数量与前面几个数异或的结果,以及他本身的取值范围有关。新的数加进来后异或结果为0:前几个数异或结果为0了,由于新的数不为0,因此不可能。前几个数异或结果不为0了,那么对于每一个结果,在范围内总能找到一个数与...

2019-11-13 21:13:58 288

原创 递归详细解剖

算法课期末复习之递归递归是算法中的基础,但很多人似乎没有熟练的掌握它。递归有两种应用场景:有些固有的算法与数据结构,本身特别适用递归求解。如:二叉树(一系列树的算法),线段树,深度优先搜索,二分(三分多分等)搜索,快速排序(第k大数,Randomized select),归并排序(逆序对数量),并查集等。有些递归和迭代都方便做,由于递归的思路简单,我们采用递归求解。如:棋盘覆盖问题...

2019-11-12 00:10:49 384

空空如也

空空如也

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

TA关注的人

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