- 博客(60)
- 收藏
- 关注
原创 pytest简单使用
在项目根目录下创建固定名为 pytest.ini 的配置文件,文件格式需要加上 [pytest] ,然后通过 markers 注册自定义标记。
2024-11-08 15:33:51
645
原创 mysql内存结构
2.mysql8开始有change buffer(只针对非唯一的二级索引页),dml语句时,如果数据页没在buffer pool中,则先在change buffer中缓存数据的变更,未来读取数据的时候再合并恢复到buffer pool,然后刷新到磁盘。1.buffer pool,缓冲池,主内存的一个区域,缓存磁盘上经常操作的真实数据,是增删改查首先操作数据的地方(如果没有数据则先从磁盘加载),在缓冲池修改完后再以一定频率刷新到磁盘,减少磁盘io,加快处理速度。段:分为数据段,索引段,回滚段。
2024-05-22 18:01:29
535
原创 spring一二三级缓存和@Lazy解决循环依赖流程
2.填充a中属性b的时候,去一级缓存寻找b的实例,如果没找到,则创建b的实例化简单对象,并把b的lambda表达式放入三级缓存,并在set中标识b正在创建,然后为b属性注入,发现存在为a的属性,先去一级缓存找a,没找到,又通过set发现a正在创建,则判断出a和b存在循环依赖,然后去二级缓存寻找a,也没找到,最后去三级缓存中取出a的lambda表达式,判断a是否存在aop代理,如果存在aop代理,则生成a的代理对象放入二级缓存,否则生成a的普通对象放入二级缓存,并删除三级缓存中的a。删除其他缓存中的b。
2024-04-23 22:47:17
395
1
原创 贡献法:USACO 2021 December Contest Bronze:孤独的照片
Farmer John 最近购入了 N 头新的奶牛,每头奶牛的品种是更赛牛(Guernsey)或荷斯坦牛(Holstein)之一。奶牛目前排成一排,Farmer John 想要为每个连续不少于三头奶牛的序列拍摄一张照片。然而,他不想拍摄这样的照片,其中只有一头牛的品种是更赛牛,或者只有一头牛的品种是荷斯坦牛——他认为这头奇特的牛会感到孤立和不自然。在为每个连续不少于三头奶牛的序列拍摄了一张照片后,他把所有「孤独的」照片,即其中只有一头更赛牛或荷斯坦奶牛的照片,都扔掉了。
2024-03-17 19:45:33
460
原创 贪心,排序不等式:acwing第133场周赛:最小和
给定 n 个字符串 s1,s2,…,sn。每个字符串 si 的长度均在 [1,6][1,6] 范围内且均由小写字母 a∼j(即前 10 个小写字母)构成。现在,我们要在字母 a∼j 和数字 0∼9之间确立一种字母与数字的一一对应关系,每个字母对应一个数字,不同字母对应的数字不同。请你计算并输出得到的 n 个正整数之和的最小可能值。输入保证至少存在一种满足条件的对应关系。
2024-03-15 16:55:04
448
原创 多路并归,贪心:《信息学奥赛一本通》:池塘钓鱼
即:在第 1 个鱼塘中钓鱼第 1 分钟内可钓到 10 条鱼,第 2 分钟内只能钓到 8 条鱼,……,第 5 分钟以后再也钓不到鱼了。从第 1 个鱼塘到第 2 个鱼塘需要 33 分钟,从第 2 个鱼塘到第 3 个鱼塘需要 5 分钟,……给出一个截止时间 T,设计一个钓鱼方案,从第 1 个鱼塘出发,希望能钓到最多的鱼。假设能钓到鱼的数量仅和已钓鱼的次数有关,且每次钓鱼的时间都是整数分钟。
2024-03-15 11:02:41
534
原创 数论:整除分块
回归原题,可以发现和整除分块思路相似, 变成了求 Σ(y/i*i),思路转换一下, n/i 表示的是 因素 i 在1-n 中出现的次数,也就是上文提到计算公式前半部分,然后 l-r 的区间中的值表示的是所有 n/i 的值都相等的 i 的值,也就是模板中 n/i 所需要乘的 值从 (r - l + 1) 表示的区间长度变成了区间中的所有值的和,然后区间中的值显然为等差数列,公差为1,最小值首项为 l,最大值末项为 r,输出只有一行,为f(X)+f(X+1)+⋯+f(Y)的值。对于一个X,仙贝很快算出f(X)
2024-03-12 18:57:08
539
原创 破链成环-acwing第131场周赛-奶牛报数
有 n 头奶牛,围成一圈,顺时针依次编号为 1∼n。其中,第 i 头奶牛的重量为 ai。现在,我们需要选择一头奶牛,并从该奶牛开始,所有奶牛按照顺时针的顺序进行 1∼n报数。报数完毕后,所有报出的数在 [l,r) 范围内的奶牛,会被选中制作牛肉。请你找到满足上述条件的最佳报数方案,并输出该方案下,11 号奶牛报的数。
2024-03-12 16:45:23
476
原创 NOIP2012提高组-借教室
在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。面对海量租借教室的信息,我们自然希望编程解决这个问题。我们需要处理接下来 n 天的借教室信息,其中第 i� 天学校有 ri 个教室可供租借。共有 m 份订单,每份订单用三个正整数描述,分别为 dj,sj,tj,表示某租借者需要从第 sj 天到第 tj 天租借教室(包括第 sj 天和第 tj 天),每天需要租借 dj 个教室。
2024-03-10 19:57:12
528
原创 Google Kickstart2018 Round H Problem B - 壁画
Thanh 想在一面被均分为 N 段的墙上画一幅精美的壁画。每段墙面都有一个美观评分,这表示它的美观程度(如果它的上面有画的话)。不幸的是,由于洪水泛滥,墙体开始崩溃,所以他需要加快他的作画进度!每天 Thanh 可以绘制一段墙体。在第一天,他可以自由的选择任意一段墙面进行绘制。在接下来的每一天,他只能选择与绘制完成的墙面相邻的墙段进行作画,因为他不想分开壁画。在每天结束时,一段未被涂颜料的墙将被摧毁(Thanh 使用的是防水涂料,因此涂漆的部分不能被破坏),且被毁掉的墙段一定只与。
2024-03-10 19:47:50
395
原创 贪心算法: 奶牛做题
贝茜正在参加一场奶牛智力竞赛。赛事方给每位选手发放 n 张试卷。每张试卷包含 k 道题目,编号 1∼k。已知,不同卷子上的相同编号题目的难度相同,解题时间也相同。其中,解决第 i 道题(无论哪张试卷)所需的时间为 ti 分钟。每解决 1 道题目,就可以获得 1 分。因此,每张试卷的最终得分等于这张卷子上被解决的问题数量。此外,每有一张满分试卷(即成功解决卷子上全部 k 个问题的试卷),还可以额外获得 1 分奖励。比赛的持续时长为 M分钟,请你计算贝茜最多可能获得多少分。
2024-03-09 19:48:52
700
原创 差分算法:空调-USACO 2021 December Contest Bronze
Farmer John 的 N 头奶牛对他们牛棚的室温非常挑剔。有些奶牛喜欢温度低一些,而有些奶牛则喜欢温度高一些。Farmer John 的牛棚包含一排 N 个牛栏,编号为 1…N,每个牛栏里有一头牛。第 i 头奶牛希望她的牛栏中的温度是 pi,而现在她的牛栏中的温度是 ti。为了确保每头奶牛都感到舒适,Farmer John 安装了一个新的空调系统。
2024-03-09 14:40:57
527
原创 优先队列-牛奶用餐
约翰的农场有 n 头奶牛,编号 1∼n。每天奶牛们都要去食堂用餐。食堂一共有 k 个座位,也就是说同一时间最多可以容纳 k 头奶牛同时用餐。已知,第 i 头奶牛到达食堂的具体时刻为 si,用餐所需花费的时间为 ti。保证 s1<s2<…<sn。除了用餐花费时间以外,其它花费时间忽略不计。请你计算并输出,每头奶牛用餐完毕的具体时刻。
2024-02-26 10:19:07
434
原创 acwing周赛115第二题-奶牛照相
约翰的农场有 n 头奶牛,编号 1∼n。其中,第 i 头奶牛的宽度为 wi,高度为 hi,有一天,它们聚餐后决定拍照留念。请你计算并输出每张照片的面积(W×H的值)。
2024-02-16 21:34:06
447
原创 前缀和算法-截断数组
给定一个长度为 n 的正整数数组 a1,a2,…,an 和一个正整数 p。现在,要将该数组从中间截断,得到两个子数组。我们规定,一个数组的价值等于数组内所有元素之和模 p 的结果。我们希望,将给定数组截断后,得到的两个子数组的价值之和尽可能大。请你输出这两个子数组的价值之和的最大可能值。
2024-02-16 16:45:06
449
原创 Nacos配置管理
一.nacos统一配置1.nacos管理页面添加配置2.新建配置DataID 是多部分组成,第一部分就是服务名称,第二部分就是开发环境,第三部分就是后缀名,具体环境配置时,就是[ 服务名 ]-[ profile ].[ 后缀名 ]多环境配置时,就是 [ 服务名 ].[ 后缀名 ],可以省去中间的开发环境,也就是指定的服务无论是开发或者测试环境都可以共享此配置。分组默认即可。格式支持 yaml 和 properties具体配置内容,只需要有热更新需求的配置就可以,不要把
2024-02-13 13:26:32
555
原创 Nacos安装,服务注册,负载均衡配置,权重配置以及环境隔离
然后双击 startup.cmd 启动 nacos服务,默认端口是8848,可以在conf文件夹下的application.properties文件中修改端口。直接在nacos服务列表的具体服务中设置,值为 0-1,0则不会被访问,可以用来对服务版本升级,然后再重启,缓慢调高权重,让少数用户测试完毕后逐渐扩大比例依次升级,实现平滑升级。4.启动模块项目,然后就可以在nacos管理界面的服务管理-服务列表中看到启动的模块项目服务。不同的命名空间之内的服务,数据无法相互访问,把命名空间的id写入yml。
2024-02-06 21:38:30
2547
原创 位运算:进制
给定两个整数 a,b请你计算,在 [a,b] 范围内有多少个整数满足其二进制表示恰好有一个 0。不考虑前导 0。例如,当 a=5,b=10 时,[5,10]范围内的所有整数及其二进制表示如下:可以看出,只有 5 和 6 满足二进制表示恰好有一个 00。
2024-02-06 20:12:13
399
原创 图论:合适的环
给定一个 n 个点 m 条边的无向图。图中不含重边和自环。请你在图中选出一个由三个点组成的环。设图中一共有 x 条满足:不在选择的环内,且与选择的环内某个相连。我们希望通过合理选环,使得 x 的值尽可能小。请你输出 x 的最小可能值。
2024-02-05 23:39:12
1073
原创 数论:修改数列
给定一个长度为 n 的正整数数列 a1,a2,…,an。你可以对其中任意个(可以是 0 个)元素进行修改。但是,每个元素,每次修改:要么令其加 11,要么令其减 11。请问,至少需要修改多少个元素,才能使得数列 a 变成一个等差数列。
2024-02-05 22:08:34
796
原创 SpringCloud--Eureka注册中心服务搭建注册以及服务发现
注意springboot以及springcloud版本,可能有莫名其妙的错误,这里使用的是springboot-2.6.13,springcloud-2021.0.5。
2024-02-05 19:57:33
1709
1
原创 双链表模拟算法,详细注解
现在要对该链表进行 M 次操作,进行完所有操作后,从左到右输出整个链表。:题目中第 k 个插入的数并不是指当前链表的第 k 个数。例如操作过程中一共插入了 n 个数,则按照插入的时间顺序,这 n 个数依次为:第 1 个插入的数,第 2个插入的数,…第 n 个插入的数。
2024-02-03 23:10:10
766
1
原创 单链表模拟
现在要对该链表进行 M次操作,进行完所有操作后,从头到尾输出整个链表。:题目中第 k 个插入的数并不是指当前链表的第 k 个数。例如操作过程中一共插入了 n 个数,则按照插入的时间顺序,这 n 个数依次为:第 1 个插入的数,第 2 个插入的数,…第 n 个插入的数。
2024-02-03 22:54:20
385
原创 DFS剪枝算法经典题目-挑选
给定一个包含 n 个正整数 a1,a2,…,an的集合。集合中可能存在数值相同的元素。请问,一共有多少种不同的选法。
2024-02-02 16:00:22
390
原创 springboot整合rabbitmq,及各类型交换机详解
如果直接发送信息给一条队列,而这一消息需要多个队列的的多个消费者共同执行,可此时只会有一个队列的一个消费者接收该消息并处理,其他队列的消费者无法获取消息并执行。2. Direct Excahange:定向交换机,把接收到的消息根据规则路由到指定的队列,也就是发送到属于生产者指定的RoutingKey的队列上。但基于bean方式具有缺陷,比如当需要消费多个RoutingKey值的队列时候,就需要一直创建bean。然后直接运行springboot就会自动创建交换机,队列,绑定关系以及RoutingKey。
2024-02-02 12:59:17
711
1
原创 第十四届蓝桥杯省赛JavaB组 - 蜗牛
这天,一只蜗牛来到了二维坐标系的原点。在 x轴上长有 n 根竹竿。它们平行于 y轴,底部纵坐标为 00,横坐标分别为 x1,x2,…,xn。竹竿的高度均为无限高,宽度可忽略。蜗牛想要从原点走到第 n个竹竿的底部也就是坐标 (xn,0)。它只能在 x 轴上或者竹竿上爬行,在 x 轴上爬行速度为 11 单位每秒;由于受到引力影响,蜗牛在竹竿上向上和向下爬行的速度分别为 0.70.7 单位每秒和 1.31.3 单位每秒。
2024-02-01 21:38:24
1314
原创 windows11安装RabbitMQ
RabbitMQ安装,Erlang环境安装,如果报错Error: unable to perform an operation on node 'rabbit@DESKTOP-AS3QMQP'. Please see diagnostics information and suggestions below.
2024-01-28 20:43:01
1660
原创 第十四届蓝桥杯省赛pythonB组题。 管道
有一根长度为 len的横向的管道,该管道按照单位长度分为 len 段,每一段的中央有一个可开关的阀门和一个检测水流的传感器。一开始管道是空的,位于 Li 的阀门会在 Si 时刻打开,并不断让水流入管道。对于位于 Li的阀门,它流入的水在 Ti(Ti≥Si)时刻会使得从第 Li−(Ti−Si) 段到第 Li+(Ti−Si) 段的传感器检测到水流。求管道中每一段中间的传感器都检测到有水流的最早时间。
2024-01-26 13:23:48
960
原创 第十四届蓝桥杯C组题目 三国游戏
小蓝正在玩一款游戏。游戏中魏蜀吴三个国家各自拥有一定数量的士兵 X,Y,Z(一开始可以认为都为 00)。游戏有 n 个可能会发生的事件,每个事件之间相互独立且最多只会发生一次,当第 i个事件发生时会分别让 X,Y,Z增加 Ai,Bi,Ci当游戏结束时 (所有事件的发生与否已经确定),如果 X,Y,Z 的其中一个大于另外两个之和,我们认为其获胜。例如,当 X>Y+Z 时,我们认为魏国获胜。小蓝想知道游戏结束时如果有其中一个国家获胜,最多发生了多少个事件?如果不存在任何能让某国获胜的情况,请输出。
2024-01-26 12:25:47
4377
原创 springboot+vue项目如何在linux上部署
在linux上部署项目,是我们实训项目作业的最后一步,此时我们的项目编码测试已经完成,接下来就需要在服务器上部署上线,那么如何部署上线,接下来我会在虚拟机上的CentOS7系统上实现部署,如果本机访问项目,则可以在可视化界面通过浏览器一样访问,如果是外部访问,则还需要配置nginx和防火墙等,这好像也不属于作业要求范围了,就不详细叙述了。因为我们的是java项目,所以首先需要确保服务器又java运行环境,也就是jdk,我们是CentOs系统,所以可以通过命令。4.进入mysql,然后输入上一条定义的密码。
2023-12-24 16:59:26
2807
1
原创 springboot整合springSecurity
springboot项目引入security后,security就会创建默认登陆页面,对用户身份权限认证,还会把生成的用户user的密码输出在控制台,只要访问了项目资源就会自动跳转到他的默认登录页面,只有使用他的密码登录后才会去访问我们接口。在前后端分离的项目中,不需要security提供的登陆页面,他的这些配置不符合我们的需求,此时就需要自定义配置,实现我们的需求,比如通过数据库中的账号密码实现登录,而不是通过它提供的账号密码登录。 2、Credentials:用户凭证,一般是密码。
2023-12-23 15:00:18
1175
原创 MybatisPlus代码生成器
MybatisPlus代码生成器可以根据设计好数据库表,自动帮助我们完成对应表的controller层,service层,entiy层和mapper层的基础代码,简化开发。2)在启动引导类同包下创建代码生成器类CodeGenerator。3)然后运行后就会发现项目中多了pasture表对应的各层代码。4)成功生成后找到mapper包下的接口,在其加上@Mapper。5)插件推荐MybatisPlus。
2023-12-22 22:14:04
550
原创 springboot使用Validated实现参数校验
做为后端开发人员,一定有前端传的数据是可能会出错的警惕性,否则程序就可能会出错,比如常遇到的空指针异常,所以为了程序运行的健壮性,我们必须对每一个参数进行合法校验,就能避免很多不必要的错误,但如果仅仅是if-else则非常冗余且不美观,就可以使用Validated进行参数校验。可以看到报错内容非常不友好,非常长一串,此时就可以使用统一异常处理,捕获MethodArgumentNotValidException发出的异常,当然也能捕获任何异常。当使用不合法的参数访问controller时,就会报错。
2023-12-21 20:10:50
838
原创 springboot集成swagger
为什么文档中有这么多条接口信息,因为swagger是基于RESTful 风格的框架, 但controller中映射路径使用的是@RequestMapper注解,表示可以接收所有请求,所有swagger把每个请求方式都展示出来了。通过Swagger UI,开发人员可以直观地查看API接口的详细信息,包括请求示例、响应模型和参数说明。- Swagger Codegen: 一个自动生成API客户端代码的工具,根据Swagger规范文件,它可以生成多种编程语言的代码框架,帮助开发人员快速集成和调用API接口。
2023-12-19 20:40:27
825
原创 重启docker容器后,ssh无法访问且浏览器无法访问
今天把云服务器中的docker容器重启一遍后,发现里面的项目访问不到了,而且也无法ssh访问。改了一天,终于还是改好了。1 .首先是无法ssh访问,我无法ssh连接的原因是因为我容器的重启之后sshd没有了,然后重新下载了sshd然后重启就行了,进入容器后,使用命令查看sshd状态,没有的话需要安装,使用或者安装sshd服务,然后开启服务就行了。最后可以通过命令再看看是否开启。sshd服务开启后,重启mysql,java项目,命令2.其次就是外部浏览器无法访问,
2023-12-16 17:32:06
1027
原创 云服务配置docker镜像容器以及常用操作命令
首先通过ssh进入云服务器。简单讲解一下docker中镜像和容器,打个比方,镜像相当于印钱的那个模板,容器相当于从模板上拓下来的钱,不同的模板可以印出不同的钱。但容器被修改后也可以变成新的镜像,再印出对应的初始时相同的容器。
2023-12-15 20:55:20
605
原创 springMVC 学习总结(四) 拦截器及统一异常处理
但两则也有不同之处,如过滤器只在Servlet前后起作用,是Servlet规范定义的,是Servlt容器才支持的,不能使用spring容器资源,但拦截器是基于java反射机制,可以深入到方法前后,既可以用于web程序,也可以用于非web程序,且拦截器实在spring容器内部,是spring框架支持的,归spring管理,配置在spring中,所以能够使用spring中任何资源,对象,事务,数据源等,但需要通过IOC注入到拦截器。postHandle方法,该方法在控制前方法执行之后,视图解析之前执行,
2023-12-12 17:40:39
563
原创 阿里云服务器环境配置,ssh免密登录和配置docker
在tmux中,安装docker,为什么要安装docker,是因为方便以后项目迁移,所以我们不仅需要安装docker,还需要再docker里面配置镜像,把项目什么的全部配置再docker中。安装docker即可,很简单,找到安装教程,把他的所有命令一条一条按顺序复制粘贴下来在tmux中执行就行了,一定要一条不漏按顺序,不然很可能会出错,如果有y/n就一直y。然后输入用户密码,表示切换此用户需要的密码,要记住,然后其他信息一直回车,不用填,最后y,然后用户创建完成。然后输入命令 tmux ,进入tmux,
2023-12-10 17:17:44
1193
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人