自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 滑动窗口模板

【代码】滑动窗口模板。

2024-11-11 20:51:36 148 1

原创 unbantu系统更新显卡驱动后网络,蓝牙界面消失

,选择比当前内核版本低的那个(uname -r查看内核版本)启动后网络正常,dpkg --get-selections|grep linux 查看每个包对应情况,把现在这个内核有但是高版本没有的sudo apt-get install一下,重启选回高版本内核,网络正常。先说结论,更新驱动的同时可能导致内核被更新,但一些配套的库没有一起装上。没有网络更新不了(usb连接也连不上)。开机引导界面进高级模式(grub文件可能也被更新了,如果没进引导参考。

2024-10-30 16:21:19 380

原创 conda和pip

先把warning里提到的几个文件删掉(一般问题文件系统会加上~前缀,注意要把其中带-infor后缀的文件也删了(warning里不会出现这个文件,但是会有~前缀,list指令读的是这个文件,不删install会有问题)),再看看anaconda文件里lib和env\lpytorch\lib里还有没有想要删除的包的文件,手动全删,再install就行。2.conda list下的和pip list下的同样的包,导入的是pip list下的。Conda list除了虚拟环境下的还有关联文件下的。

2024-07-04 09:30:18 964

原创 动态规划(复杂度=状态数量*转移数量)

背包问题1.01背包 每件物品最多一个2.完全背包 每件物品无限个3.多重背包 每个物品最多si个4.分组背包 N组物品每组最多选一个。

2024-03-17 21:22:39 596

原创 最小生成树&&二分图(未完成)

1.最小生成树(一般是无向图):1)Prim 朴素版Prim O(n^2) 稠密图堆优化版 O(mlogn)稀疏图(不常用)2)Kruskal O(mlogm)稀疏图2.二分图 判断:染色法 O(m+n)匹配:匈牙利算法 最坏O(mn),实际一般远小于O(mn)

2024-03-13 21:25:15 701

原创 最短路问题

只介绍模板不介绍原理一.单源最短路(从一个点到其他所有点的最短距离)1.所有边权都是正数1)朴素Dijkstra算法 O(n^2) 稠密图//n为节点数,m为边数2)堆优化版Dijkstra算法 O(mlogn)稀疏图2.存在负权边(有负权回路时最短路可能不存在)1)Bellman-Ford O(nm)//擅长解决有边数限制的2)SPFA 一般:O(m) 最坏:O(nm)//Bellman-Ford的优化二.多源汇最短路(任意一点到所有点的最短距离)

2024-03-10 19:10:53 1208

原创 树&&图//存储,遍历,topsort

树本身是一种特殊的图,无向图与有向图类似在这里只介绍有向图。

2024-03-08 11:40:02 600 1

原创 DFS&&BFS

给定一个 n×m的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1表示不可通过的墙壁。最初,有一个人位于左上角 (1,1)处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。每个解决方案占 n 行,每行输出一个长度为 n 的字符串,用来表示完整的棋盘状态。数据保证 (1,1) 处和 (n,m) 处的数字为 0,且一定至少存在一条通路。给定一个整数 n,将数字 1∼n 排成一排,将会有很多种排列方法。表示某一个位置的方格状态为空,while队列不空{

2024-03-07 20:37:31 619

原创 STL

9.unordered_set, unordered_map, unordered_multiset, unordered_multimap 哈希表。1.vector 变长数组 vector<int>(10) vector<int>(10,1) vector<int>[10]5.priority_queue 优先队列(大根堆) psuh(),top(),pop()4.queue 队列 psuh(),front(),pop()6.stack 栈 push(),top(),pop()

2024-03-06 20:33:02 391 1

原创 哈希表

1.memse是按字节来初始化的,int中有四个字节,初始化成0x3f就是将每个字节都初始化成0x3f,所以每个int就是 0x3f3f3f3f(>10^9)。算法题中常见插入和查找操作,若需要删除,可再开一个数组做标记,没必要直接删除。现在要进行 N 次操作,对于每个询问操作输出对应的结果。2.数组长度一般开到个数上限的2-3倍。常见处理冲突的方式:1)开放定址法。注意:哈希表表长尽可能选取素数。

2024-03-04 21:12:21 345 1

原创 堆

以下内容都以小根堆为例数组下标从1开始(方便分左右儿子)1.插入一个数 heap[++size]=x;up(size);2.求集合中最小值 heap[1]3.删除最小值 heap[1]=heap[size];size--;down(1);4.删除任意一个元素 heap[k]=heap[size];size--;down(k);up(k)5.修改任意一个元素 heap[k];;down(k);up(k);存储:x左儿子:2xx右儿子:2x+1。

2024-03-03 20:20:09 276

原创 并查集

1.将两个集合合并2.询问两个集合是否在一个集合当中可以在近乎O(1)的复杂度下完成这两个操作。

2024-03-03 17:33:58 394 1

原创 KMP算法

串的模式匹配算法在kmp算法中,主串的指针不需要再回退,模式串字符不等于主串时,指针j根据next数组回退至next[j]。

2024-03-02 20:47:45 389

原创 Trie树

Trie树中有个二维数组 son[N][26],表示当前结点的儿子,如果没有的话,可以等于++idx(idx相当于一个分配器,如果需要加入新的结点就用++idx分配出一个下标)。比如:son[1][0]=2表示结点1的一个值为a的子结点为结点2;如果son[1][0] = 0,则意味着没有值为a子结点。这里的son[N][26]相当于链表中的ne[N]。这个for循环就是在做这个操作,p可以理解为子树的根,u是这颗子树的孩子节点,idx给孩子节点分配新的空间,cnt作为计数和标记数组。

2024-03-02 18:50:13 554

原创 单调队列

q更像一个优先级队列,q[head]所指元素的输出优先级最高,只要这个元素还在窗口内,就一直输出,在这个过程中,他也许会因为窗口移动而被更新成另一个值(他还在窗口内),或者会一直保持最高优先级直至他出窗口,此时head++指向次优先级。有一个大小为 k 的滑动窗口,它从数组的最左边移动到最右边。常用于滑动窗口,求窗口内最大值和最小值。给定一个大小为 n≤1e6 的数组。你只能在窗口中看到 k 个数字。每次滑动窗口向右移动一个位置。

2024-03-01 21:11:52 212 1

原创 单调栈

每次输入x,若存在stk[top]>=x,则pop() (下次输入y时由于x

2024-03-01 20:30:19 266 1

原创 数组模拟链表(静态链表)

通过结构体new()出的链表当笔试数据过多时容易超时,故用数组模拟,实际上就是静态链表。

2024-03-01 11:31:48 280 1

原创 区间合并

例如:[1,3][1,3] 和 [2,6][2,6] 可以合并为一个区间 [1,6][1,6]。注:由于第一步已经按左端点排序,故不存在更新start的情况。给定 n 个区间 [li,ri],要求合并所有有交集的区间。3)紫色:说明黑色已经更新完毕,需要开始更新紫色。将有交集的区间取并集合并,本质是贪心。注意如果在端点处相交,也算有交集。输出合并完成后的区间个数。1.按区间左端点排序。2)红色:更新end。

2024-02-29 20:39:19 225

原创 整数离散化

接下来,进行 m 次询问,每个询问包含两个整数 l 和 r,你需要求出在区间 [l,r] 之间的所有数的和。当然,这道题也可以直接用哈希表不用find函数,复杂度将由O(nlogn)直接优化为O(1)现在,我们首先进行 n 次操作,每次操作将某一位置 x上的数加 c。假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。1.a中可能存在重复元素,故需要。2.需算出a离散化后的值()根据某种关系映射到一段。

2024-02-29 18:58:23 227

原创 位运算问题

2.lowbit(x) 返回x的最右一位1及后面数 lowbirt(101000)=1000。通过x&-x实现(-x与x取反+1一致,可应用于统计x内1的个数。1.n的二进制数表示中第k位(从第0位开始):n>>k>>1。1)把第k位右移到第0位 n>>k。2)看个位是几 n&1。

2024-02-28 20:46:41 150

原创 双指针算法

核心思想:将朴素的两层循环(O(n^2))优化到O(n)

2024-02-28 15:37:21 297

原创 一维和二维差分

前缀和的逆运算。

2024-02-28 09:51:59 984

原创 一维和二维前缀和

作用:快速求数组中[l,r]段和sum=s[r]-s[l-1];i从1开始相比于从0开始可以减少特判,且sum[1,r]=Sr。对于每个询问,输出原序列中从第 l个数到第 r个数的和。接下来再输入 m个询问,每个询问输入一对 l,r。输入一个长度为 n的整数序列。

2024-02-27 19:56:51 360

原创 高精度问题模板(大整数)

注:数据逆序存入数组方便解决进位问题。

2024-02-27 19:33:12 514

原创 二分模板

【代码】二分模板。

2024-02-26 19:17:38 200 1

原创 快排,归并排序模板

注意:模板涉及很多边界问题,x, i,j及符号不能随意更改,牵一发而动全身。

2024-02-26 11:37:30 380 1

空空如也

空空如也

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

TA关注的人

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