- 博客(26)
- 收藏
- 关注
原创 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
原创 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
原创 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
原创 区间合并
例如:[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
原创 一维和二维前缀和
作用:快速求数组中[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
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅