- 博客(66)
- 收藏
- 关注
原创 前端工程化(vue脚手架安装)
1.npm config set prefix "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Node.js" //引号内路径是NodeJs安装所在路径。2.npm config get prefix 查看其是否成功。4.vue --version //查看vue版本。用命令行安装,先安装NodeJs,配置环境变量。
2023-11-06 21:26:10
179
原创 jdbc Preparestatement防止SQL注入的原理
useServerPrepStmts=true加上这句才能预编译。可以看到这一行,预编译时?
2023-11-03 17:02:18
278
原创 树的重心学习
定义:重心是指树中的一个结点,如果将这个点删除后,剩余各个连通块中点数的最大值最小,那么这个节点被称为树的重心。2.把两个树通过一条边相连得到一个新的树,那么新的树的重心在连接原来两个树的重心的路径上。1.一个树最多只有1个或2个重心。dfs遍历每一个点,求取每个点作为"重心“的最大子树的节点数,然后取最小的那个。4.把一个树添加或删除一个叶子,那么它的重心最多只移动一条边的距离。先把树的重心求出来, 算出所有其他结点到树的重心的距离之和。3.树中所有点到某个点的距离和中,到重心的距离和是最小的;
2023-10-19 23:36:01
323
原创 二叉堆(基础)
状态转移方程:f[i][j] = max(f[i][j - 1] + f[i - (1 << j - 1)][j - 1]),即[i, i + 2^j - 1 - 1]+[i + 2^j - 1, i + 2^j]类似于预处理操作,len = log2[r - l + 1],f[l][r] = max(f[l][len], f[r - (1 << len) + 1][len],使用倍增实现的,类似区间dp,f[i][j]存放[i, i + 2^j]之中的最值。形成堆分为几个操作:插入,删除,上浮、下沉。
2023-09-30 10:37:00
81
原创 一些动态规划dp简单基础题
这里我选择f[j] = f[j] + f[j - x] 选择它的种数+不选择它的种数。模板:完全背包的的优化就在于推公式,由于是无限个,所以就可以同加来消元。这个题我是用有向图遍历过的,每次找一条挖地雷的路,找到最大路保存下来。也是个01背包问题,只不过我将f[]用于枚举此时能够装的体积了。这是个递推题,杨辉三角,该位置的最大路径值=左上+正上。二进制优化:实际上是分堆,减少了i枚举数。多重背包:每样东西能选s[i]个。01背包:每样东西只能选一个。完全背包:每样东西能选无限个。经典01背包,板子题。
2023-09-20 23:04:47
267
原创 拓扑排序(一部分)
DAG有向无环图又被称为拓扑图,拓扑序列指的是将每个节点能按照起点到终点的顺序排列。这题得到了一个拓扑序之后,能够算出同时进行的多个杂物所需时间,用a去记忆答案。toposort的应用还有很多,比如说在动态规划中,但是我还没学。板子题,入度 | 出度。
2023-09-14 17:57:18
56
原创 P1162 填涂颜色
这里为了处理一些情况,将图周围一圈的0空出来,用于吧围墙之外的部分都标记上。用宽搜,四联通,感觉好奇怪,八连通ac不了。这个题用逆向思维,见不用染色的地方标记。
2023-09-06 00:00:19
85
原创 近期写的dfs,bfs题目(比较基础的)
这道题和上边有所不同的就是,起点不止一个,在一开始都放进队列就好了。这道题就是bfs模板题,走迷宫,求两个点之间的最短距离。也是差不多,更简单一些,只不过这里马走八方。
2023-09-04 14:11:02
48
原创 三道dfs题
1是将重合部分的长度处理出来,2是怎么记录每个单词最多用两次。分别枚举行和列,能填的地方就填,dfs就行。这个题最主要的就是dfs前的预处理。这道题类似于组合型枚举。
2023-08-31 21:52:50
110
原创 关于dfs和bfs基本思想
一条路走到黑,深度优先,如果加上回溯和剪枝等等能够解决很多事情,比如走迷宫啦,暴力枚举等等。用队列入队、出队达到不用递归的目的,能够不用一头摸到黑,而是将每一层次都先遍历。2.二叉树,图的遍历:二叉树是递归左右子树,图是递归邻接表......bfs不用递归,效率比较高,相对来说dfs只能枚举20以内的数据范围。1.各种枚举:指数型,排列型,组合型.......1.走地图(嘎嘎快)
2023-08-26 17:49:40
121
原创 图论(基础)
注意用邻接表存图(s存边先处理一下,即排序) 然后处理e[i][]表示i点连接的点。"如果有很多篇文章可以参阅,请先看编号较小的那篇(因此你可能需要先排序)。因为是找最大值dfs,用了反向建边提高效率,用一个大值去标记多个小值。分别用dfs和bfs输出一遍。唯一的难点在于怎么做到。然后就是喜闻乐见的dfs递归一下,bfs一下。基础1:图的存储(主要是邻接矩阵和邻接表)图的遍历:通常是bfs()、dfs()顶点,边 | 权,度数。问题不大,排个序就行。该代码须加上快读快写。
2023-08-26 17:12:02
1401
原创 P1892 [BOI2003] 团伙
一开始感觉和生物链很像,想用带权并查集写来着,写了一下,但是RE了;正解很简单,是将点数扩大乘2,就能装下敌人和朋友关系了;
2023-08-23 17:10:26
48
原创 哈希表(基础)
一个思想:哈希进制+单向加密(使值不能高概率重复)三个操作:初始化哈希值,insert集合,查找集合中处理问题:%mod->哈希冲突->用表头表示相等的%mod值,链表内存放真值。
2023-08-22 14:34:23
17
原创 并查集(进阶)
2.判断话的真假:若是1(同类命题)先判断是否建立了关系,建立了就判断dis[x]和dis[y]到跟距离是否同余(是否是同类);1.find()的写法:先递归查根,每处的dis[x] = dis[x] + dis[p[x]],x到父节点+父节点到根。思路:带权边dis[]存放该点到根的距离,构造%3(0根,1吃根,2被根吃)这样一个食物链(环形)初始化的并查集一共有n个连通块,每次合并时(祖宗不同)就会减少一块。这题就是考察求连通块的数量,数量减一就是所需建的道路数量。用并查集去维护就很明显了。
2023-08-20 19:22:38
24
原创 并查集(基础)
1.祖宗节点的祖宗肯定指向自己,如果不指向自己,则递归find(p[x])查找父节点的父节点。状态压缩:将除了祖宗节点的所有节点的父节点(指向的节点)都指向祖宗节点。并查集就是一个能合并(merge)和查询(query)的集合。2.如果祖宗节点不同,则将a节点的祖宗节点改成b节点的祖宗节点。如果指向自己,那么就是祖宗节点。
2023-08-20 12:06:52
21
原创 P4715 【深基16.例1】淘汰赛
就是将二叉树的叶子节点给出了,让我们模拟找到根。队列做法:就是每次取两个比较,然后再放在队尾。对顶栈写法:可惜re了。
2023-08-18 16:07:39
41
原创 P1540 [NOIP2010 提高组] 机器翻译
也可以用queue或deque 但是查找元素(查字典过程)就不能用find()函数了,www。这题就是用stl向量容器模拟队列过程。
2023-08-17 15:07:33
114
原创 P1241 括号序列
然后又读了一边题:想了想数据,一测试发现不是这样的,得按原来的顺序分别输出配对的,和未配对的。我还犯了个小错误就是,RE了好多点,一搜发现是在栈那里,得确定非栈空才能取顶和pop()思路就是还是将左括号入栈,但是要一起将坐标入栈,用st数组来标记是配对成功了还是不成功。一开始的想法:左括号入栈left,us存未配对成功的,配对成功就输出。一开始确实也是因为题意理解错了,栈就是用来辅助判断是否配对的。这道题倒是对于栈有感觉了。果不其然想的太简单了,
2023-08-16 22:57:41
51
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人