- 博客(38)
- 收藏
- 关注
原创 8.Redis
Redis是一个基于内存的key-value结构数据库,而mysql是通过数据文件,以二维表的方式存储在磁盘上。Redis客户端图形界面 Another-Redis-Desktop-Manager。Redis存储的是key-value结构的数据,其中key是字符串类型。默认无密码,修改密码,redis.windows.conf。-h后跟地址 -p后跟端口。打开后使用客户端去连接。Redis常用数据类型。
2024-05-08 11:11:47
273
原创 5.Git
Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html文件等)。通过Git仓库来存储和管理这些文件,Git仓库分为两种。
2024-05-07 00:06:06
328
原创 4.初入文件上传
文件上传:指将本地图片、视频、音频等文件上传到服务器,供其他用户浏览或者下载的过程。文件上传在项目中应用非常广泛,我们经常发微博、发微信朋友圈都用到了文件上传功能文件上传前端页面三要素。
2024-04-28 21:33:04
257
原创 项目开发规范
REST,表述性状态转换,他是一种软件架构风格使用URL定位资源,HTTP动词描述操作根据发出请求类型来区分操作此为风格,是约定方式,可以打破描述模块的功能通常使用复数,也就是加s的格式来描述,表示此类资源,而非单个资源。
2024-04-28 13:36:59
161
原创 Tomcat点击startup.bat后一闪而过的解决方式
在cmd中进入Tomcat的bin目录的路径下使用startup.bat命令,查看命令行报错内容。
2024-04-19 01:30:25
1023
原创 初入学习注解
如果注解中只有一个属性名为value的属性,则在使用注解时不用写value=**,否则在使用注解时要使用“属性名 = 属性值”来给注解内的属性赋值。注解本质是一个接口,Java中所有注解都是继承了Annotation接口@注解(…):其实就是一个实现类对象,实现了该注解以及Annotation接口。
2024-04-17 01:04:31
141
原创 初入反射技术
反射位于Java提供的java.lang.reflect包下反射:加载类,并且允许以编程的方式解剖类中的各种成分(成员变量、方法、构造器等)反射主要用于制作框架。反射第一步加载类,第二部获取对象。
2024-04-17 00:37:26
888
原创 初入单元测试
单元测试:针对最小的功能单元(方法),编写测试代码对其进行正确性测试Junit可以用来对方法进行测试,虽然是有第三方公司开发,但是很多开发工具已经集成了,如IDEA。
2024-04-16 23:14:57
283
原创 初入网络编程
可以让设备中的程序与网络上其他设备中的程序进行数据交互(实现网络通信的)Java在java.net.*包下提供了网络编程的解决方案。
2024-04-16 00:24:45
172
原创 1.Web后端开发
规定了浏览器和服务器之间数据传输的规则(格式)基于TCP,面向连接,基于请求-响应模型,一次请求一次响应HTTP协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的->多次请求间不能共享数据,速度快。
2024-04-14 03:30:40
171
原创 Maven
Maven是apache旗下的一个开源项目,是一款用于管理和构建java项目的工具。基于项目对象模型(POM)的概念,通过一小段描述信息来管理项目的构建(Tips:POM=project object model)
2024-04-14 02:16:28
1384
原创 2.Ajax/Axios
(Asynchronous JavaScript And XML 异步的JS和XML)then调用成功回调函数(使用了箭头函数简化代码),data为服务器端返回的相应数据。Axios是对原生Ajax的封装,使用简单,快速开发。
2024-04-12 14:54:15
222
原创 1.Vue浅入
其特点是内存占用少,并发能力强,在大型互联网公司都有广泛的使用。npm 是一个包管理工具,用于安装和管理Vue项目所需的依赖库和工具。生命周期分为八个阶段,并且每进入一个阶段(触发一个生命周期事件),会自动执行一个生命周期方法(钩子)。Vue-cli:Vue官方提供的一个脚手架,用于快速生成一个Vue的项目模板。依赖环境:NodeJS(安装后查询版本,并且配置npm的全局安装路径)安装axios:在项目目录下的cmd窗口执行。Vue Router:Vue的官方路由。安装NodeJS后安装Vue-cli。
2024-04-11 23:49:39
220
1
原创 铁轨(Rails) Uva514
题目某个城市右一个火车站,铁轨铺设如图所示,有nnn节车厢从AAA方向驶入车站,并且按照进站顺序编号为111~nnn。你的任务是判断是否能让它们按照某种特定的顺序进入BBB方向的铁轨并驶出车站。驶入车站的车厢必须按照相反的顺序输出车站,对于每个车厢而言,只能从A−车站−BA-车站-BA−车站−B。思路我们可以用AAA表示此时驶入车站的车厢的编号,target[B]target[B]target[B]表示当前判断到的驶出车站的第BBB个车厢的编号。用stack<int>Sstack<
2021-11-06 15:05:54
477
原创 数据结构(树和二叉树)
树树结构的基本术语结点拥有的子树数称为结点的度度为0的结点称为叶子或终端结点度不为0的结点称为非终端结点或分支节点树的度是指树内各结点的度的最大值结点的祖先是从根到该结点所经分支上的所有结点结点的层次从根开始定义起,根为第一层,树中结点的最大层次称为树的深度或者高度如果将树中结点的各子树看出从左到右是有次序的,则称该树为有序树,否则称为无序树。在有序树中最左边的子树的根称为第一个孩子,最右边的称为最后一个孩子。森林是m棵互不相交的树的集合,对树中每一个结点来说,其子树的集合即为森林。
2021-11-03 14:06:49
126
原创 数据结构(栈和队列)
栈和队列与线性表的关系栈和队列是两种重要的线性结构。栈和队列也是线性表,其特殊性在于栈和队列的基本操作是线性表操作的子集,它们是操作受限的线性表。栈抽象数据类型栈的定义栈是限定仅在表尾进行插入或删除操作的线性表。因此,对栈来说,表尾端有特殊含义,称为栈顶,表头段称为栈底。不含元素的空表称为空栈。假设栈S=(a1a_1a1 , a2a_2a2 , a3a_3a3 … ana_nan),则称a1a_1a1为栈底元素,ana_nan为栈顶元素。栈中元素按a1a_1a1 , a2a_2a2
2021-09-29 19:46:08
195
原创 数据结构(线性表)
线性表的类型定义线性表是最常用且最简单的一种数据结构,一个线性表是n个数据元素的有限序列。在稍复杂的线性表中,一个数据元素可以由若干数据项组成。在这种情况下,常把数据元素称为记录,含有大量记录的线性表又称为文件。线性表中的数据类型可以是各种各样的,但同一线性表中的元素必定具有相同特性,即属于同一个数据对象。相邻数据元素之间存在序偶关系,也就是 aiaiai 领先于 ai−1a_{i-1}ai−1,称 ai−1a_{i-1}ai−1 是 aia_iai 的直接前驱元素, ai+1a_{i+1}ai+1
2021-09-29 14:38:19
355
原创 Java初学
文件名称:在开发中如果类的定义使用了public class声明,那么文件名称必须与类名称保持一致。如果没有使用public class而文件名和类名称不相同,则最终生成的*.class字节码文件的名称将与类名称相同。也就是说class定义的类,文件名称可以与类名称不同,但是生成的.class文件的名称就是class定义的类的名称。那么最后要运行的时候执行的一定是*.class的文件名称,即执行的是字节码文件的文件名,假如jave文件的文件名为he,但是class文件的文件名是hhe,则在命令行窗
2021-09-28 20:18:17
89
原创 树形DP,树的最长路径(直径)
题意一颗树有n个点,并且有n-1条无向边,每条边都有边权,问这颗树的最长路径是多少。思路最长路径中的点的类型有两种,一种是这个点为最长路径的端点,另一种是这个点是最长路径的中间节点。因为是无向树,所以我们可以以任意一个点为根节点,所以当我们确认根节点后,我们可以计算出所有点的向下走的最长距离和次长距离,次长距离和最长距离加起来就是以这个点为悬挂点的最长路径(悬挂点:以这个点为最高点),然后不断更新树的最长路径。我们不用考虑向上的走的方式,因为如果当前点为数的直径中的节点,并且下一个点在上面的话,我们这
2021-09-27 23:59:01
220
原创 Codeforces Round #743 (Div. 2)
A. Countdown题意:给定我们一串数字,我们要让这串数字变成0,我们可以选择两种操作,一种是让这串数字减一,一种是交换两个数字的位置。问最少需要多少次操作才可以让这串数字变成0。思路:因为我们只能从最低位减一,所以我们最优的结果肯定是将所有不是0的数都移动到最低位再减一,这样肯定比将他们留在较高位去减更优。所以我们可以从最低位向最高位判断当前位是不是0,如果不是就移动到最低位并且不断减至0。最后计算操作次数就可以。#include<iostream>using namespace
2021-09-20 11:00:03
124
原创 状态压缩DP
状态压缩dp通常是将每一种状态转化为二进制数,从而枚举每一个二进制数,从而判断每一种状态。Ⅰ:莫德里安的猜想: 在NM的棋盘分割成若干个12的长方形,有多少种方案直接想的话,难以下手,所以我们考虑将每一列的状态转化为用01表示的,0表示上一列的这一行没有伸出一个小方格,1则表示上一行有伸出一个小方格用f[i][j]f[i][j]f[i][j]存储状态:表示第iii列伸出了多少小方格,这个状态由jjj用二进制存储,若有5行也就是jjj的状态有0~31,(若第一行有其余都没有,那就是10000=16)即把
2021-09-16 15:47:57
126
原创 浅谈状态机
这东西怎么说呢,我也是一知半解,不能述其所有。但是我后面要讲的是将状态机这个模型应用到动态规划中去,所以如果是单单如此的应用的话我还是觉得我可以大致讲的明白的(针对小白而言,因为我也是小白哈哈哈)。如果我讲的有哪些地方不正确,或者不清楚的,希望你们可以评论指出,我一定第一时间学习与交流。状态机这个东西如同其字面所描述的一样,就是将每一个状态,以及状态间转移的所有方式组成一个整体。而应用到动态方程的就是我们可以通过上一个的状态的所有情况来退出这个当前状态的所有情况,不用推到前几个状态。这样就可以让我们更
2021-09-15 21:42:35
108
原创 Codeforces Global Round 16
比赛链接.A. Median Maximization题意给定两个正整数n和s,n代表数列的长度,s代表数列中所有数的和。要让我们求出所有满足n和s的数列中中位数最大的数列的中位数。该题中位数的定义:为⌈n2⌉⌈\frac{n}{2}⌉⌈2n⌉也就是数列长度按照从小到大排序后,长度除以2上取整时的位置的数字。思路因为要让中位数尽可能大,所以我们就要让中位数之前的数尽可能小,中位数及之后的数尽可能大,因此我们就要让中位数之前的数赋值为0,中位数及之后的所有位置的数平分s。 #inc
2021-09-13 23:29:03
183
原创 邻接表存储树
邻接表存树我们用邻接表存储的时候,就是将这个点的所有直接子节点存储在以这个点为开头的链表上。必须的变量int h[N],e[M],ne[M],idx;变量解释e[i]:第i个编号对应的点。h[i]:a这个点所连接的第一个直接子节点的编号。ne[i]:第i个编号的点的下一个点idx:当前存储到的编号加边操作也就是将a点的新边对应的点b接到a链表表头的后面,并且记录下b点对应的编号。void add(int a,int b){ e[idx]=b,ne[idx]=h[a],h[a]=
2021-09-13 16:53:59
1799
原创 背包问题求具体方案
题目要求求出01背包的具体方案,要求按照最小字典序输出。思路因为要输出背包的方案,我们可以从最后一个向第一个物品判断,判断完后从第一个物品向后递推,递推是由哪一个物品转移过来的。这样就可以输出具体方案了。但是题目又要求最小字典序输出,所以我们只需要从第一个开始的物品开始遇到可以选的物品就必选,这样就可以让字典序最小了。#include<iostream>using namespace std;const int N=1010;int n,m;int v[N],w[N];i
2021-09-11 22:14:34
134
原创 二维费用的背包问题(潜水员)
感觉大多数人都没有讲清楚 ,我尝试看看,能不能用我笨拙的语言解释清楚,从而让更多人能够理解题目潜水员为了潜水要带足够的氧气和氮气。他有若干个带两种气体的气缸:氧气和氮气。每个气缸都有各自的重量和两种的气体含量。潜水员为了完成他的工作需要一定数量的氧气和氮气。问他完成工作所需气缸的总重的最小重量的是多少?输入第一行有2整数m,n(1≤m≤21,1≤n≤79)。它们表示氧,氮各自需要的量。第二行为整数k(1≤n≤1000)表示气缸的个数。此后的k行,每行包括aia_iai,bib_ibi,cic
2021-09-11 20:40:26
206
原创 01背包之二维费用
宠物小精灵收服题目思路具体代码题目宠物小精灵是一部讲述小智和他的搭档皮卡丘一起冒险的故事。一天,小智和皮卡丘来到了小精灵狩猎场,里面有很多珍贵的野生宠物小精灵。小智也想收服其中的一些小精灵。然而,野生的小精灵并不那么容易被收服。对于每一个野生小精灵而言,小智可能需要使用很多个精灵球才能收服它,而在收服过程中,野生小精灵也会对皮卡丘造成一定的伤害(从而减少皮卡丘的体力)。当皮卡丘的体力小于等于0时,小智就必须结束狩猎(因为他需要给皮卡丘疗伤),而使得皮卡丘体力小于等于0的野生小精灵也不会被小智收服。当小
2021-09-09 00:34:03
123
原创 多重背包及其二进制/优先队列优化
多重背包定义:有一个固定容量的背包,并且有若干种物品,每种物品有 n i n_i ni个,每种物品所占的空间是 v i v_i vi,价值为 w i w_i wi,问如何取可以让背包内的物品的总价值最大。朴素的多重背包dpf [ i ] [ j ] f[i][j] f[i][j]的定义:表示从前 i i i种物品中选,背包容量为 j j j的情况下,所有选法的最大值。f [ i ] [ j ] = m a x ( f [ i ] [ j ] , f [ i − 1 ] [ j − k × v
2021-09-08 11:41:56
291
原创 优先队列(滑动窗口求最大值)
优先队列(滑动窗口求最大值)题目链接题目中要求我们求出长度为k的滑动窗口的最大值和最小值如果是用暴力的求法的话时间复杂度为O(n×k)O(n\times k)O(n×k),这样就会导致超时。所以我们就要优化方案,暴力的求法中的时间复杂度主要是消耗在暴力遍历寻找最大值/最小值上,因此我们要想办法优化这一段的操作。以求最大值为例子:我们要知道一个滑动窗口中比某一个数AAA小的并且在AAA之前的数是对滑动窗口中的最大值是没有贡献的,因为AAA比AAA前面的这些比AAA小的数大,还在这些数之后,就代表A会
2021-09-07 21:30:14
358
原创 多重背包的优化(二进制优化/单调队列优化)
多重背包定义:有一个固定容量的背包,并且有若干种物品,每种物品有nin_ini个,每种物品所占的空间是viv_ivi,价值为wiw_iwi,问如何取可以让背包内的物品的总价值最大。朴素的多重背包dpf[i][j]f[i][j]f[i][j]的定义:表示从前iii种物品中选,背包容量为jjj的情况下,所有选法的最大值。f[i][j]=max(f[i][j],f[i−1][j−k∗v[i]]+k∗w[i]);f[i][j]=max(f[i][j],f[i-1][j-k*v[i]]+k*w[i]);
2021-09-07 14:14:52
757
原创 Codeforces Round #742 (Div. 2)
Codeforces Round #742 (Div. 2)B. MEXor Mixup前置芝士:对于异或运算的结果是0还是1,我们只需要关注1的奇偶就行,奇数个1异或结果是1,偶数个1异或结果为0(多少个0异或结果都是0)题意:给定MEX的值为a,XOR值为b,MEX的定义为:不在序列内的最小非负整数;XOR的定义为:序列内所有数的按位异或的结果。求可以满足MEX和XOR的最短序列思路:我们其实只需要根据b的每一位是1还是0,就可以这个位上有奇数还是偶数个1。首先一定有0−−(a−1)0--(
2021-09-06 16:09:02
188
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人