- 博客(123)
- 收藏
- 关注
原创 acwing单调栈
优化的方法主要是通过单调栈来解决问题,因为题目要求的是要找到当前数字前最近的小于他的数字,,所以说后插入进来的数字如果小于栈之前的数字 就可以直接把栈之前的数字删除。简单来说就是将原本栈里面所有比当前插入进去的数字大的数字全部删除 以此来减少比较的次数 优化了时间复杂度。共一行,包含 N 个整数,其中第 i 个数表示第 i 个数的左边第一个比它小的数,如果不存在则输出 − 1。给定一个长度为 N 的整数数列,输出每个数左边第一个比它小的数,如果不存在则输出 − 1。1≤数列中元素≤10^9。
2024-10-14 19:27:35
376
原创 B3631 单向链表
实现一个数据结构,维护一张表(最初只有一个元素1需要支持下面的操作,其中x和y都是1到106范围内的正整数,且保证任何时间表中所有数字均不相同,操作数量不多于1051 x yyx2 xxx03 xx。
2024-10-13 15:19:01
1259
原创 acwing排列数字、n皇后
每个解决方案占 n行,每行输出一个长度为 n的字符串,用来表示完整的棋盘状态。其中 . 表示某一个位置的方格状态为空,Q 表示某一个位置的方格上摆着皇后。每个方案输出完成后,输出一个空行。n−皇后问题是指将 n个皇后放在 n×n的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。给定一个整数 n,将数字 1∼n排成一排,将会有很多种排列方法。现在给定整数 n,请你输出所有的满足条件的棋子摆法。现在,请你按照字典序将所有的排列方法输出。共一行,包含一个整数 n。
2024-10-12 05:00:00
221
原创 dfs复习版
DFS即Depth First Search,深度优先搜索。简单地理解为一条路走到黑。即可以吧dfs看成是一个很执着的人 一条路走到头以该图为例:先走A,然后到B,到了B有三种情况,意味着这条路还没走完,那我就接着走,从B走到E,走到E之后没路了。那我就回溯到B,为什么呢?因为我原本走到B的时候就有三种情况,但是刚刚只走了一种情况,因此我要回到B再去尝试第二条路,于是我们就从E回到B,然后从B去F。到了F,又没路了,那我们就回到B走第三种情况,从B到G。这样我们就走完了从A->B的三种情况。
2024-10-11 20:14:37
1198
1
原创 每日算法题一:
例如操作过程中一共插入了 n 个数,则按照插入的时间顺序,这 n 个数依次为:第 1 个插入的数,第 2 个插入的数,…例如操作过程中一共插入了 n 个数,则按照插入的时间顺序,这 n 个数依次为:第 1 个插入的数,第 2 个插入的数,…I k x,表示在第 k 个插入的数后面插入一个数 x(此操作中 k 均大于 0)。D k,表示删除第 k 个插入的数后面的数(当 k 为 0 时,表示删除头结点)。IL k x,表示在第 k 个插入的数左侧插入一个数。在第 k 个插入的数左侧插入一个数;
2024-10-11 19:33:58
498
原创 acwing用数组实现单双链表
实现一个单链表,链表初始为空,支持三种操作: 向链表头插入一个数; 删除第 k 个插入的数后面的数; 在第 k 个插入的数后插入一个数。现在要对该链表进行 M 次操作,进行完所有操作后,从头到尾输出整个链表。注意:题目中第 k 个插入的数并不是指当前链表的第 k 个数。例如操作过程中一共插入了 n 个数,则按照插入的时间顺序,这 n 个数依次为:第 1 个插入的数,第 2 个插入的数,…第 n 个插入的数。
2024-10-09 09:51:55
537
原创 用数组实现双联链表
在这里没有定义head,直接让0号点是head,下标为1的点是最右边的点//e[i] 表示节点i的值为多少//l[i] 表示节点i指向左边的指针//r[i] 表示节点i的指向右边的指针//idx 相当于一个指针 表示当前已经用到了哪个点。
2024-10-09 09:49:46
426
原创 用数组实现单链表
/head 表示头节点的下标//e[i] 表示节点i的值为多少//ne[i] 表示节点i的next指针是多少//idx 相当于一个指针 表示当前已经用到了哪个点。
2024-10-06 17:24:16
315
原创 django分发路由
1、创建app2应用,在app2文件夹下创建“urls.py”文件,在“urls.py”文件中增加路由信息。1、在每个 app 目录里都创建一个 urls.py 文件,记录该应用的路由信息。让Django项目的每个app都单独拥有自己的 urls,减少混淆,容易维护。2、在项目的 urls.py 文件里,统一将路径分发给各个 app 目录。2、在app2 、app1的“views.py”文件中添加视图函数。3、在myshop项目的“urls.py”文件中添加路由分发信息。
2024-09-13 23:18:34
507
原创 P1427 小鱼的数字游戏P1028 数的计算
小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字ai(长度不一定,以0结束),记住了然后反着念出来(表示结束的数字0就不要念出来了)。这对小鱼的那点记忆力来说实在是太难了,你也不想想小鱼的整个脑袋才多大,其中一部分还是好吃的肉!所以请你帮小鱼编程解决这个问题。
2024-09-13 11:10:01
1385
原创 acwing斐波那契额数列 翻硬币
现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。在一行中输出斐波那契数列的前 NN 项,数字之间用空格隔开。两行等长的字符串,分别表示初始状态和要达到的目标状态。这个数列从第 33 项开始,每一项都等于前两项之和。输入一个整数 NN,请你输出这个序列的前 NN 项。我们约定:把翻动相邻的两个硬币叫做一步操作。小明正在玩一个“翻硬币”的游戏。
2024-09-12 21:35:51
468
原创 递归(c++)
从 1∼n1∼n 这 nn 个整数中随机选出 mm 个,输出所有可能的选择方案。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面(例如。从 1~n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。把 1~n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。首先,同一行内的数升序排列,相邻两个数用一个空格隔开。按照从小到大的顺序输出所有方案,每行 11 个。按照从小到大的顺序输出所有方案,每行1个。
2024-09-11 22:28:41
601
原创 vscode配置django环境并创建django项目
创建文件夹 并在vscode打开终端输入命令 “ python -m venv env ” 查看目录结构。
2024-09-11 22:23:56
1724
1
原创 洛谷 P1888 三角函数P2676 [USACO07DEC] Bookshelf B
输入一组勾股数abcabc,用分数格式输出其较小锐角的正弦值。(要求约分。
2024-09-02 14:27:47
967
原创 快速排序算法
修改代码一的短板 在代码一中quick_sort方法的最后一行 ,每次都要进行两次循环 显然提高了时间复杂度 这里直接根据题意可以使用if判断来减少时间复杂度。第一行包含两个整数 n 和 k。第二行包含 n 个整数(所有整数均在1~109范围内),表示整数数列。给定一个长度为n的整数数列,以及一个整数k,请用快速选择算法求出数列的第k小的数是多少。传统的先使用快速排序算法排好序,然后取出第k的数字。输出一个整数,表示数列的第k小数。
2024-09-02 11:14:21
212
原创 DFS与BFS
DFS即Depth First Search,深度优先搜索。简单地理解为一条路走到黑。以该图为例:先走A,然后到B,到了B有三种情况,意味着这条路还没走完,那我就接着走,从B走到E,走到E之后没路了。那我就回溯到B,为什么呢?因为我原本走到B的时候就有三种情况,但是刚刚只走了一种情况,因此我要回到B再去尝试第二条路,于是我们就从E回到B,然后从B去F。到了F,又没路了,那我们就回到B走第三种情况,从B到G。这样我们就走完了从A->B的三种情况。
2024-08-24 23:06:57
1680
原创 Dijkstra(c++)
迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学家狄克斯特拉于1959年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题。迪杰斯特拉算法主要特点是从起始点开始,采用贪心算法的策略,每次遍历到始点距离最近且未访问过的顶点的邻接节点,直到扩展到终点为止。同时dijkstra算法主要用于解决单源最短路问题(边权为正数),其可以分为两种版本,两种版本各有用处,并不存在好坏之分,接下来我们用n代表点的数量,用m代表边的数量。
2024-08-24 16:18:08
935
原创 c++拓扑排序
图的拓扑序列是针对有向图来说的 无向图没有拓扑序列若一个由图中所有点构成的序列 A 满足:对于图中的每条边 (x,y),x 在 A 中都出现在 y 之前,则称 A 是该图的一个拓扑序列。举个例子:在下图中有一个序列 在该序列中 1 2 3为一个拓扑序列因为在(1,2)中 1在2前面 (1,3)中 1在3前面 (2,3)中 2在3前面所以成立并不是每个序列都有拓扑序列举个例子:如下图所示 如果存在环 一定没有拓扑序列有向无环图又被称为拓扑图在这里在介绍两个概念 : 入度和出度。
2024-08-23 22:27:47
374
原创 acwing树的重心
给定一颗树,树中包含 n 个结点(编号 1∼n)和 n−1 条无向边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。
2024-08-22 22:03:39
307
原创 树与图的深度优先遍历
重心定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。接下来 n−1 行,每行包含两个整数 a 和 b,表示点 a 和点 b 之间存在一条边。请你找到树的重心,并输出将重心删除后,剩余各个连通块中点数的最大值。输出一个整数 m,表示将重心删除后,剩余各个连通块中点数的最大值。1、邻接矩阵 g[a,b] 存储 a -> b这条边的信息。有向图(边是有方向的: a -> b);无向图(边是无方向的 : a - b )
2024-08-22 21:48:44
412
原创 acwing走迷宫
一个人位于左上角 (1,1)处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。请问,该人从左上角移动至右下角 (n,m) 处,给定一个 n×m 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。的坐标,这里举一些特殊的情况:距离为3的点 ,最后可以得到如上图所示。数据保证 (1,1) 处和 (n,m) 处的数字为 0,且一定至少存在一条通路。接下来 n 行,每行包含 m 个整数(0 或 1),表示完整的二维数组迷宫。
2024-08-21 16:54:57
383
原创 BFS宽度优先搜索
适用于处理的问题 只有当边权都一样的时候(比如边权都是1)才可以使用BFSBFS即Breadth First Search,即广度优先搜索。如果说DFS是一条路走到黑的话,BFS就完全相反了。BFS会在每个岔路口都各向前走一步。因此其遍历顺序如下图所示:我们发现每次搜索的位置都是距离当前节点最近的点。因此,BFS是具有最短路的性质的。为什么呢?这就类似于我们后面要学习的贪心策略。这里简单地介绍一下贪心,假设我们可以做出12次选择。我们想得到一个最好的方案。
2024-08-21 16:53:31
510
原创 位运算与常用库函数
返回去重之后的尾迭代器(或指针),仍然为前闭后开,即这个迭代器是去重之后末尾元素的下一个位置。该函数常用于离散化,利用迭代器(或指针)的减法,可计算出去重后的元素个数。upper_bound 的用法和lower_bound大致相同,唯一的区别是查找第一个大于x的元素。lower_bound 的第三个参数传入一个元素x,在两个迭代器(指针)指定的部分上执行二分查找,返回指向第一个大于等于x的元素的位置的迭代器(指针)。翻转一个数组,元素存放在下标1~n: 左开右闭,左边的数字可以取到,右边的取不到。
2024-08-20 19:41:15
497
原创 c++ stl库
所有的容器都可以视作一个“前闭后开”的结构,end函数返回vector的尾部,即第n个元素再往后的“边界”。set和multiset的迭代器称为“双向访问迭代器”,不支持“随机访问”,支持星号(*)解除引用,仅支持”++”和–“两个与算术相关的操作。设x是一个元素,s.erase(x) 从s中删除所有等于x的元素,时间复杂度为O(k+logn),其中k是被删除的元素个数。 s.count(x) 返回集合s中等于x的元素个数,时间复杂度为 O(k +logn),其中k为元素x的个数。
2024-08-20 19:40:23
820
原创 P1036 [NOIP2002 普及组] 选数
在dfs函数中,我们明显能看到一个参数 startx。比如说在6里面随便选5个数,那么选法都是什么呢?其实这里的难点是:def算法 加上 如何去重?是startx而不是start是为了避免关键字。个整数相加,可分别得到一系列的和。知道了不降原则,咱们再来see see 代码。现在,要求你计算出和为素数共有多少种。”应该是4,因为是升序排列。也就是最小的,符合不降原则的参数。就是这样的,枚举还是蛮清晰的吧。所以说,这样就可以避免判重了。咱们最主要看其中不降原则的部分。输出一个整数,表示种类数。
2024-08-19 23:28:47
809
原创 c++中stl库
所有的容器都可以视作一个“前闭后开”的结构,end函数返回vector的尾部,即第n个元素再往后的“边界”。set和multiset的迭代器称为“双向访问迭代器”,不支持“随机访问”,支持星号(*)解除引用,仅支持”++”和–“两个与算术相关的操作。设x是一个元素,s.erase(x) 从s中删除所有等于x的元素,时间复杂度为O(k+logn),其中k是被删除的元素个数。 s.count(x) 返回集合s中等于x的元素个数,时间复杂度为 O(k +logn),其中k为元素x的个数。
2024-08-18 23:56:16
840
原创 BFS宽度优先搜索
我们发现每次搜索的位置都是距离当前节点最近的点。因此,BFS是具有最短路的性质的。这就类似于我们后面要学习的贪心策略。这里简单地介绍一下贪心,假设我们可以做出12次选择。那么我们可以在第一次选择的时候,做出当前最好的选择,在第二次选择的时候,再做出那时候最好的选择,由此积累。当我们在每次的选择面前,都做到了当前最好的选择,那么我们就可以由局部最优推出整体最优。这里也是类似的,我们可以在每次出发的时候,走到离自己最近的点,由此我们每次都保证走最近的,那从局部最近推整体最近,必有一条路是整体最近的。
2024-08-18 23:54:52
200
原创 DFS介绍
DFS即Depth First Search,深度优先搜索。简单地理解为一条路走到黑。以该图为例:先走A,然后到B,到了B有三种情况,意味着这条路还没走完,那我就接着走,从B走到E,走到E之后没路了。那我就回溯到B,为什么呢?因为我原本走到B的时候就有三种情况,但是刚刚只走了一种情况,因此我要回到B再去尝试第二条路,于是我们就从E回到B,然后从B去F。到了F,又没路了,那我们就回到B走第三种情况,从B到G。这样我们就走完了从A->B的三种情况。
2024-08-18 23:53:52
836
原创 acwing排列数字
在字典中,单词是按照首字母在字母表中的顺序进行排列的,比如 alpha 在 beta 之前。而第一个字母相同时,会去比较两个单词的第二个字母在字母表中的顺序,比如 account 在 advanced 之前,以此类推。字典序(dictionary order),又称 字母序(alphabetical order),含义是表示英文单词在字典中的先后顺序,在计算机领域中扩展成两个任意字符串的大小关系。给定一个整数 n,将数字 1∼n 排成一排,将会有很多种排列方法。现在,请你按照字典序将所有的排列方法输出。
2024-08-18 23:52:13
328
原创 acwing跳台阶、走方格
的方格阵,沿着方格的边线走,从左上角 (0,0)开始,每次只能往右或者往下走一个单位距离,问走到右下角 (n,m)一共有多少种不同的走法。下面来解释一下图上的内容 ,因为每一次可以跳一级或者两级,所以在该图中每次数字之间的差距也都是1或者是2,该图中就列举出了所有的可能性,最后只需要计算出最终数字为5的次数就可以了。该题主要运用的思想是递归的思想,也涉及到了dfs(深度优先搜索)算法。一个楼梯共有 n 级台阶,每次可以走一级或者两级,共一行,包含一个整数,表示走法数量。共一行,包含一个整数,表示方案数。
2024-08-18 23:51:33
380
原创 uniapp开发中遇到的问题
在写项目的时候前期需求要求底部导航栏中间部分凸起,样式为一个蓝色的圈圈(发布按钮),而原生的uniapp不支持自定义底部导航栏,于是需要进行自定义修改。
2024-08-17 23:32:44
974
原创 Vue中调整组件的高度及其他样式
请注意,具体的实现方法可能需要根据你的具体布局和样式需求来调整。变长,你可以使用CSS来调整它的高度。根据内容自动调整高度,确保它内部没有固定高度的元素,或者使用。:如果你需要根据Vue组件的状态来动态调整高度,可以使用。:如果你的布局使用的是CSS Grid,你可以设置。至少有某个高度,但是又不超过某个最大高度,可以使用。是在一个flex容器中,你可以设置它的。在Vue组件中,如果想让一个组件如。所在的行或列来占据更多空间。属性来让它占据更多的空间。然后在你的Vue实例的。属性来处理溢出的内容。
2024-08-16 23:30:51
599
原创 微信小程序在不同移动设备上的差异导致原因
自适应单位,但是还是出现了在不同机型上布局不统一的问题,在此记录一下在首页做一个输入框,在测试的时候,这个输入框在不同的机型上到处跑,后来排查了很久都不知道为什么会这样。给背景图片加了一个高度,之后,下面的组件就没有再乱跑,换了不同机型也没有再出现差异了。在写小程序的时候用了。
2024-08-16 23:28:20
1085
原创 微信小程序自定义弹窗
提到uniapp自定义弹窗,,估计大部分人第一个想到的都是uni-popup这个弹窗效果,今天也尝试了一下,看到人家的效果图确实好看,但是对我这种不走小程序这条路的人不太友好,,浅浅学了vue,这里介绍一个自定义的弹窗方法。
2024-08-15 23:28:06
1660
原创 微信小程序的四种弹窗使用
总而言之,这四个能处理很少一部分弹窗效果 个人感觉,因为支持的方法太少了,前几天想找个支持照片跟文字的,尝试好久都不行,
2024-08-15 23:03:45
9975
基于web3D的老年服务可视化大屏
2024-09-13
基于springboot的养老管理系统
2024-08-01
计算机语言中spring全家桶去进行简单的功能实现
2023-08-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅