- 博客(234)
- 收藏
- 关注
原创 kail系统中常见问题及解决(持续更新)
压缩:zip filename.zip dir。解压:unzip filename.zip。将文档原来的源注释后,加入想要加入的源。
2024-04-28 00:48:27 112
原创 SQL注入
为了避免从MySQL中导出的SQL语句不能被其他数据库使用,它把一些MySQL特有的语句放在 /*!紧跟数据库版本号时,表示当目前的数据库版本号大于指定的版本号时,里面的内容才会被解释 SQL 语句,否则会被当成注释处理而被忽略掉,例如:/*!是指通过web应用程序在接受用户输入的数据时没有做好过滤或验证,并且将其数据带到了数据库中进行执行,使攻击者可以拼接构造它的执行代码。攻击者注入一段包含注释符的SQL语句,将原来的语句的一部分注释,注释掉的部分语句不会被执行。把用户输入的数据当做代码执行。
2024-04-22 21:50:55 936
原创 MPLS多协议标签交换
MPLS域(MPLS Domain):指的是一系列连续运行MPLS的网络设备构成的一个MPLS域LSR(Label Switching Router,标签交换路由器):指的是支持MPLS的路由器、交换机或者其他的网络设备LER(Label Edge Router,标签边缘路由器):指的是位于MPLS域的边缘、连接其他网络的LSR被称为边沿路由器LERCore LSR(核心LSR):区域内部的LSR被称为核心LSRFEC(Forwarding Equivalence Class,转发等价类)
2024-04-21 23:25:35 883
原创 AcWing 802. 区间和
假定有一个无限长的数轴,数轴上每个坐标上的数都是 0。现在,我们首先进行 n 次操作,每次操作将某一位置 x 上的数加 c。接下来,进行 m 次询问,每个询问包含两个整数 l 和 r,你需要求出在区间 [l,r] 之间的所有数的和。
2024-04-12 21:33:21 157
原创 AcWing 789. 数的范围
给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始计数)。如果数组中不存在该元素,则返回-1。
2024-04-12 17:10:44 216
原创 双指针算法
严格来说,双指针更像是一种思想而不是一种算法,双指针是指在遍历对象时,使用两个指针来进行访问,通常可以分为快慢指针(相同方向)、左右指针(相反方向)和滑动窗口(维护一个区间)将暴力解法的O(n^2)时间复杂度降低到O(n),避免多层循环。思考暴力解法中指针的单调性,通过单调性关系来进行应用。
2024-04-11 23:42:16 408
原创 AcWing 2816. 判断子序列
给定一个长度为 n 的整数序列 a1,a2,…,an 以及一个长度为 m 的整数序列 b1,b2,…,bm。请你判断 a 序列是否为 b 序列的子序列。子序列指序列的一部分项按而得的序列,例如序列 {a1,a3,a5} 是序列 {a1,a2,a3,a4,a5} 的一个子序列。
2024-04-11 23:40:09 150
原创 AcWing800. 数组元素的目标和
给定两个升序排序的有序数组 A 和 B,以及一个目标值 x。数组下标从 00 开始。请你求出满足 A[i]+B[j]=x 的数对 (i,j)。数据保证有唯一解。
2024-04-11 22:50:34 155
原创 AcWing788. 逆序对的数量
给定一个长度为 n 的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i<j 且 a[i]>a[j],则其为一个逆序对;否则不是。
2024-04-09 00:03:34 204
原创 前缀和与差分
表示从第 1 个数到第 i 个数之和一维前缀和可以很快速的求序列中任意区间的和,而二维前缀和可以快速求一个矩阵中某个子矩阵的和O(n×m),其中预处理 O(n),查询 O(m)在每次输入数据时,构造前缀和数组,求区间 [ l , r ] 和时只需在 Al - Ar。
2024-04-08 00:54:05 690
原创 AcWing798. 差分矩阵
输入一个 n 行 m 列的整数矩阵,再输入 q 个操作,每个操作包含五个整数 x1,y1,x2,y2,c,其中 (x1,y1) 和 (x2,y2) 表示一个子矩阵的左上角坐标和右下角坐标。每个操作都要将选中的子矩阵中的每个元素的值加上 c。请你将进行完所有操作后的矩阵输出。
2024-04-08 00:51:34 230
原创 AcWing796. 子矩阵的和
输入一个 n 行 m 列的整数矩阵,再输入 q 个询问,每个询问包含四个整数 x1,y1,x2,y2,表示一个子矩阵的左上角坐标和右下角坐标。对于每个询问输出子矩阵中所有数的和。
2024-04-08 00:47:27 211
原创 AcWing797. 差分
输入一个长度为 n 的整数序列。接下来输入 m 个操作,每个操作包含三个整数 l,r,c,表示将序列中 [l,r] 之间的每个数加上 c。请你输出进行完所有操作后的序列。
2024-04-08 00:32:52 100
原创 AcWing795. 前缀和
输入一个长度为 n 的整数序列。接下来再输入 m 个询问,每个询问输入一对 l,r。对于每个询问,输出原序列中从第 l 个数到第 r 个数的和。
2024-04-08 00:04:26 205
原创 分治思想排序(快速排序、归并排序)
分而治之,即把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。
2024-04-07 18:24:59 366
原创 JavaSE数组
当我们需要存储大量的相同数据时,我们就可以考虑数组这种存储数据的结构来实现。在 Java 中数组具有如下的特点:数组的长度固定,当数组定义好的,它的长度是不能发生变化的数组中的元素类型是一致数组中每个元素都有与之对应的下标,通过下标可以获取到数组中对应的元素数组中的元素在内存是连续存放的// 第一种:数据类型[] 数组名称 = new 数据类型[元素个数/长度];// 第二种:数据类型[] 数组名称 = new 数据类型[]{元素1,元素2,....,元素n};
2024-03-29 11:06:36 118
原创 JavaSE函数
访问修饰符 方法返回值类型 方法名称([参数列表]) [抛出异常] {方法体;[return 返回值;public 这是公共,所有都可以访问private 这是私有的,只能自己访问protected 这是受保护的,只能它自己或它的子类访问基本数据类型引用数据类型符合标识符的命名规则。它在方法中可以是无参数的,如果有多个参数,则参数与参数之间使用英文逗号分隔参数的声明格式为:参数类型 参数名称此部分是可以没有,如果有则需要使用 throws 来向外抛出。
2024-03-28 22:40:03 271
原创 JavaSE常用类
Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数等等static double E :比任何其他值都更接近e(即自然对数的底数)的double值。static double PI : 比任何其他值都更接近pi(即圆的周长与直径之比)的double值。static double ceil(double a) :返回最小的(最接近负无穷大)double值,该值大于等于参数,并等于某个整数。
2024-03-28 22:30:43 747
原创 完全背包问题(一般写法与空间优化写法)
有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用。第 i 种物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。
2024-03-10 01:25:51 347
原创 贪心区间问题(最大不相交区间数量)
给定 N 个闭区间 [ai,bi],请你在数轴上选择若干区间,使得选中的区间之间互不相交(包括端点)。输出可选取区间的最大数量。
2024-03-10 00:51:47 342
原创 贪心排序不等式(排队打水)
有 n 个人排队到 1 个水龙头处打水,第 i 个人装满水桶所需的时间是 ti,请问如何安排他们的打水顺序才能使所有人的等待时间之和最小?
2024-03-10 00:21:28 383
原创 贪心Huffman数(合并果子)
在一个果园里,达达已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。达达决定把所有的果子合成一堆。每一次合并,达达可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过 n−1 次合并之后,就只剩下一堆了。达达在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以达达在合并果子时要尽可能地节省体力。
2024-03-10 00:12:31 342
原创 贪心区间问题(区间选点)
给定 N 个闭区间 [ai,bi],请你在数轴上选择尽量少的点,使得每个区间内至少包含一个选出的点。输出选择的点的最小数量。位于区间端点上的点也算作区间内。
2024-03-10 00:06:16 334
原创 完全背包问题
有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用。第 i 种物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。
2024-03-07 23:25:50 360
原创 匈牙利算法
增广路径,即当左边集合的点1匹配右边的点2为已匹配时,会找到上一个左边指向该右边已匹配点2的节点3,并尝试将该节点3转向另一个节点4,若果节点4也匹配则重复该操作,如果未匹配则称这条新路径为增广路径。二分图只有偶数环,因为只有偶数环才可以保证成环的条件下还能保证在同一个集合内的环节点没有边存在,而奇数环的出现说明在这个环中至少有两个节点是在同一集合内,并且它们之间还存在边。图中的所有顶点可以分为两个集合,集合内部没有边存在,边只存在于集合之间,即所有边的顶点分别属于不同集合。二分图一定不含有奇数环。
2024-03-07 23:20:27 425
原创 动态规划(DP)之闫式分析法
以物品数为外层循环来循环容量,即对物品从第一个到最后一个都是进行选与不选操作,通过增加物品,来逐层计算,每层计算都只需调用上一层的计算结果来进行简单计算,避免了底层数据多次计算。
2024-03-06 23:42:08 1578
原创 染色法
二分图只有偶数环,因为只有偶数环才可以保证成环的条件下还能保证在同一个集合内的环节点没有边存在,而奇数环的出现说明在这个环中至少有两个节点是在同一集合内,并且它们之间还存在边。又称作二部图,是图论中的一种特殊模型。图中的所有顶点可以分为两个集合,集合内部没有边存在,边只存在于集合之间,即所有边的顶点分别属于不同集合。将图中所有的节点都染上颜色1或颜色2,染色规则为相邻节点不能为同一种颜色,即节点 x 若为颜色1则它的相邻节点 y 的颜色为2。二分图一定不含有奇数环。
2024-03-06 23:23:09 367
原创 滚动数组
在斐波那契数列中,我们要计算第 n 个数为多少时,会申请一个长度为 n 的数组来进行n-2次递推得到结果。而利用滚动数组思想,我们只需要长度为 3 的数组,仍是通过n-2次递推,但会覆盖之前不再利用的计算结果,通过计算、覆盖、计算......来得到我们所需的结果。在某些情况下,某些二维动态规划方程可以直接降阶为一维,甚至有时可以降低时间复杂度。是一种算法优化思想,它通过让数组滚动起来,每次都使用固定的几个存储空间,以达到压缩和节省存储空间的目的,即是一种通过观察动态规划方程来巧妙地降低计算复杂度的思想。
2024-03-05 23:28:00 365
原创 01背包问题(一般写法)
有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 vi,价值是 wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。
2024-03-05 21:52:52 357
C语言万年历系统(控制台版本)
2024-03-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人