自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 Redis跳表SkipList-Java代码实现

一:跳表的简介:跳表(SkipList,全称跳跃表)是用于有序元素序列快速搜索查找的一个数据结构,跳表是一个随机化的数据结构,实质就是一种可以进行二分查找的有序链表。跳表在原有的有序链表上面增加了多级索引,通过索引来实现快速查找。跳表不仅能提高搜索性能,同时也可以提高插入和删除操作的性能。它在性能上和红黑树,AVL树不相上下,但是跳表的原理非常简单,实现也比红黑树简单很多。二:Java代码实现:1:跳表节点设计:类似于Map的设计方法,采用k-v键值对的方式进行,在Redis中Zset的Scor

2021-08-04 15:57:02 366

原创 一键式Mybatis-Plus代码生成器

导入依赖:<dependencies> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-core</artifactId> <version>2.2</version> </dependency>

2021-06-03 21:32:14 212

原创 Linux常用命令

一:基础命令:列出当前文件夹下的所有文件:-a:all ,查看全部的文件,包括隐藏文件;-l :列出所有的文件,包含文件的属性和权限,没有隐藏文件; ls -al显示当前目录名称:pwd二:文件管理:新建文件:touch命令创建文件:touch 文件名1 ... touch test{01..03}.txt //批处理创建文件vim或vi创建文件:vim/vi 文件名 //会直接进入编辑模式使用>或 >>创建文件:注:&g

2021-05-15 10:34:43 194

原创 MySQL分支---MariaDB安装(阿里云服务器)

由于CentOS7不支持Mysql了,但是内部集成了mariadb,所以我们可以安装MariaDB(Mysql的一个分支):安装mariadb-server:yum install -y mariadb-server启动mariadb服务:systemctl start mariadb.service将mariadb添加到开机启动:systemctl enable mariadb.service设置数据库的root账号的密码:初始时直接回车就行:mysql_secur

2021-05-14 20:39:30 383

原创 RabbitMQ的安装(阿里云服务器)

一:准备安装包准备如下两个安装包,因为rabbitmq基于erlang语言运行的,所以需要erlang语言的安装包,安装rabbitmq的运行环境;服务器上可以用如下命令获取所需要的安装包;wget https://packages.erlang-solutions.com/erlang-solutions-2.0-1.noarch.rpm二:安装Erlang解压Erlang安装包:rpm -Uvh erlang-solutions-2.0-1.noarch.rpm安装Erlang

2021-05-14 20:02:38 986

原创 四大函数式接口及Stream流式编程

一:什么是函数式接口?只包含一个抽象方法的接口,称为函数式接口;函数式接口可以通过Lambda表达式来创建该接口的对象。(若Lambda表达式抛出一个受检异常,那么该异常需要在目标接口的抽象方法上进行声明);在任意函数式接口上使用@FunctionalInterface注解,这样做可以检查它是否是一个函数式接口,同时javadoc也会包含一条声明,说明这个接口是一个函数式接口。比如我们常见的与线程有关的接口Runnable接口就是函数式接口,代码如下:@FunctionalInterface

2021-05-10 16:05:01 527

原创 线程池的三大方法七大参数和四大拒绝策略

一:什么是线程池?java.util.concurrent.Executors提供了一个 java.util.concurrent.Executor接口的实现用于创建线程池,多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。机器完成一项任务所需时间为:创建线程时间t1,执行任务的时间t2, 销毁线程时间t3;如果t1 + t3 远大于 t2,则可以采用线程池,以提高服务器性能。线程池技术主要关注于线程的创建和销毁时间,把创建时间和销毁时间分别

2021-05-10 16:04:28 401

原创 多线程中的锁(生产者消费者问题)

一:Synchronized锁机制synchronized 关键字,代表这个方法加锁,相当于不管哪一个线程运行到这个方法时,都要检查有没有其它线程正在用这个方法(或者该类的其他同步方法),有的话要等正在使用synchronized方法的线程运行完这个方法后再运行此线程,没有的话,锁定调用者,然后直接运行。它包括两种用法:synchronized 方法和 synchronized 块。如下例子:public class pc_synchronized { public static void

2021-05-10 16:03:34 392

原创 多线程基础

一:什么是多线程?线程是操作系统能够进行运算调度的最小单位;它被包含在进程之中,是进程中的实际运作单位。多线程,是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。简单来说:线程是程序中一个单一的顺序控制流程;而多线程就是在单个程序中同时运行多个线程来完成不同的工作。多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。多线程是在同一时间需要完成多项任务的时候实现的。二:多线程

2021-05-10 16:01:33 98

原创 网络流最大流进阶---最小费用最大流

概念: 最小费用最大流是在最大流的基础上对网络中的每一条边都进行了加权(费用)处理,在某一条边的花费等于在该边的流量乘上单位流量的费用,求得在满足最大流的情况下的最小费用即为最小费用最大流问题。最小费用最大流问题解决步骤与用EK算法解决最大流问题的基本步骤相同,只不过把EK算法中的bfs换成了spfa,当然spfa也可以换成Dijkstra,只不过边权存在负值,所以使用Dijkstra需要将边权变为正值。代码如下:P3381 【模板】最小费用最大流#include<bits/stdc++.h&

2020-07-17 15:55:53 1646

原创 网络流初步---最大流(EK算法+Dinic算法)

**概念:**最大流问题,是网络流理论研究的一个基本问题,目的是求网络中的可行流,使得从源点出发到达最终汇点所得的最大流量最大。首先是比较简单的EK算法:EK算法主要核心是不断进行bfs求增广路,所谓增广路就是从源点出发到达汇点的一条流量不为0的路径,该条路径可以为汇点带来不小于0的流量,然后对求得的增广路径权值进行修改,再进行下一条增广路径的bfs,直至没有增广路为止;BFS代码如下:int bfs(){ for(int i=1;i<=n;i++)vis[i]=0; vis[

2020-07-17 14:00:22 401

原创 D. Constant Palindrome Sum(线段树)

原题链接题意:给出n/2个点对,问使得所有点对和相等并且每一个点对的每一个数都小于等于k的最小代价是多少,每花费1的代价就可以把某一个数变成1~k的数字。思路:首先很容易想到的就是若一个点对两个数字都大于k,那么这两个数肯定都要花费1的代价,此时总代价加上2;这个地方初始贡献即为ans。线段树的其次若两个数都小于等于k,那我们就先花费1的代价判断这个点对所能达到的和的区间是什么,假设两者...

2020-04-22 11:14:21 181

原创 树链剖分专题训练及相应题目总结(洛谷)

树链剖分练习题(原题单链接)最近花了一点时间完成了前不久题单还剩下的一些部分,现在小小的做一个总结,个人感觉树链剖分题目类型还是很有规律的,都是可以做的,可能我还遇到特别难得题吧。我觉得树链剖分最主要的就是怎么与线段树结合将路径信息转变成区间线段信息,以及在线段树中懒标记的使用,而且树链剖分代码量有点大,所以需要很细心。[USACO11DEC]Grass Planting G这道题就是把边权...

2020-04-10 10:15:00 581

原创 洛谷【图论2-1】基础树上问题做题总结

原题单连接:【图论2-1】基础树上问题这两天写了一下洛谷基础树上题单,小小的做一个总结,不然又忘了,收获还是有的,还有两题没写,一题是原来再牛客看题解做过了,还有一题(P5666 树的重心)感觉有点难,后面再补,感觉自己做的题型还是太少了,慢慢来吧。P5836 [USACO19DEC]Milk Visits S这道题应该是最简单的一题吧,把两种牛所在的节点赋予0或者1权值,统计路径和然后与询...

2020-03-31 17:10:25 470

原创 Codeforces Round #613 (Div. 2)比赛总结

Codeforces Round #613 (Div. 2)A:Mezo Playing Zoma题意:给出n个指令,每一个指令都有可能失灵,问最后可能的坐标有多少个。解题思路:其实就是指令的个数+1,但是当时没有这么想。代码如下:#include<bits/stdc++.h>#define LL long longusing namespace std;const...

2020-01-31 14:58:29 203

原创 Educational Codeforces Round 80比赛总结

Educational Codeforces Round 80 (Rated for Div. 2)A: Deadline题意:给出你有的时间n和工作需要的时间m,你可以花一部分时间k使你的工作时间变成(m/(k+1))向上取整,问是否可以在规定时间内完成工作。解题思路:比赛没怎么多想,觉得先花一半的时间进行提高效率,应该是最优的,结果也没有FST。代码如下:#include<...

2020-01-31 14:54:14 201

原创 CF-Good Bye 2019比赛总结

A:Card Game题意:给出两组卡片,问最后谁能按照游戏规则拿到全部的卡片。解题思路:可以得出谁的卡片最大谁就能拿到全部的。代码如下:#include<bits/stdc++.h>#define LL long longusing namespace std;const int N=1e6+10;const int mod=998244353;int n,m,...

2020-01-30 14:44:47 178

原创 CF-Round600比赛总结

Codeforces Round #600 (Div. 2)A:Single Push题意:给出两个长度相等的数组,你可以将第一个数组的一段区间加上一个大于0的数,并且只有一次操作机会,问可以不可以将第一个数组变成第二个数组。解题思路:找出两个数组的不同区域有多少个,计算差值,模拟。代码如下:#include<bits/stdc++.h>using namespace ...

2020-01-27 17:11:59 195

原创 CF-Round605比赛总结

Codeforces Round #605 (Div. 3)A: Three Friends题意:给出三个点的坐标,每一个点可以进行左移或者右移单位1,或者不移动,问最后三个点之间的相对距离最小值是多少。解题思路:因为每一个点最多三种情况,所以枚举一下即可。代码如下:#include<bits/stdc++.h>using namespace std;typedef ...

2020-01-19 23:37:56 190

原创 CF教育场比赛总结六

Educational Codeforces Round 73 (Rated for Div. 2)A:2048 Game题意:给出n个2的k次幂的整数,你可以将两个相同的2的k次幂的数合并成一个两个数的合,问最后能否的到2048.解题思路:记录小于等于2048的数,从1开始向上合并,有两个相同的就合并为两个数的和,一直合并到2048,判断结果2048的个数是否大于等于1.代码如下:#...

2019-12-15 23:25:04 175

原创 CF-Round597比赛总结

Codeforces Round #597 (Div. 2)A:Good ol’ Numbers Coloring题意:给出给出n和m,然后你要对无限大长度的区域染色,当第i个位置大于等于n或者大于等于m时若i-n或者i-m为白色也要染成白色,否则为黑色,起始0位置也要染成白色,问染成黑色的块数是否为无穷多的。解题思路:思路:根据题目描述,设当前位置之前的所有白色数中任意两个为x和y,...

2019-12-08 18:36:02 192

原创 CF教育场比赛总结五

Educational Codeforces Round 66 (Rated for Div. 2)A:From Hero to Zero题意:给出一个数字n和k,当n可以被k整除时,你可以选择整除k,其他可以选择将n减1,问至少要多少步才可以将n变成1.解题思路:模拟一下就行,分整除和不能整除两种情况判断一下加入答案即可。代码如下:#include<bits/stdc++.h&...

2019-12-01 22:31:29 262

原创 CF-Round599总结

Codeforces Round #599 (Div. 2)A:Maximum Square题意:给出n个柱子高度,问柱子可以构成的最大正方形是多大。(柱子只能竖着放)解题思路:将柱子排序,从后往前遍历,模拟正方形变大时所需要的最小柱子是多大就行了。代码如下:#include<iostream>#include<cstdio>#include<alg...

2019-12-01 19:43:29 183

原创 CF-Round598总结

B:Minimize the Permutation题意:给出一段长度为n的序列,你可以对每一个位置与他后面一个数进行交换,每一个位置仅能交换一次。问可以得到的最小字典序序列是多少。解题思路:由于要求字典序最小,所以贪心的思路每一次肯定把最小的元素提到前面,对于已经移动过的区间,则不需要在进行移动了,只需要对接下来的区间找到最小值提到可以移动的区间最前面。递归即可。代码如下:#incl...

2019-11-24 20:05:56 161

原创 CF教育场比赛总结四

Educational Codeforces Round 65 (Rated for Div. 2)B:Lost Numbers(新题)题意:与电脑交互,可以询问电脑四个问题,格式为(? i j),电脑返回的结果是答案序列i和j位置的乘积,四个询问之后让你输出六个数的结果是什么。原来六个数是(4 , 8, 15, 16, 23, 42 )这六个数的一种排列。解题思路:四次询问位置1的数...

2019-11-22 20:29:30 222

原创 CF教育场比赛总结三

Educational Codeforces Round 64 (Rated for Div. 2)A:Inscribed Figures题意:给出一段只包含1 2 或3的序列,1代表圆,2代表等腰三角形,3代表正方形,序列的相邻两个数字不会相等,后一个数字代表的形状会嵌套在前一个数字代表的图形中,每一次嵌套都需要满足嵌套的图形面积最大,问嵌套之后相交点的个数是多少。解题思路:分析知当三角形...

2019-11-17 17:06:06 201

原创 团队赛补题加总结

子串查询题意: 给出一个字符串和q个询问,对于每一个询问,输出l~r区间内最小字典序子序列的个数。解题思路: 对于每一个询问可知,字典序最小的就是区间内最小字母出现的次数,所以可以对原字符串求前缀字母和,对于每一个区间,从a开始遍历,输出第一个个数不为0的个数即可。代码如下:#include<iostream>#include<algorithm>#includ...

2019-11-09 22:08:11 230

原创 CSP比赛总结

本周没有任何进展,基本都是在牛客打CSP比赛,而且战绩感人。补题1:乘法师题意:给定一个长为n的数组,满足所有数都是非负整数。求A有多少个非空子区间,满足区间中所有数的积≥v。解题思路:对于一段不含0的区间(l,r)若累乘到某一个数(位置i)时乘积已经大于等于v了,那么它对答案的贡献就是r-i+1,然后再将积除以最右边的数,继续向右累乘,以此类推。所以只需要对每一个不含0的区间进行计算求和即...

2019-11-03 20:38:51 1038

原创 CF教育场比赛总结二

一:Educational Codeforces Round 63 (Rated for Div. 2)C:Alarm Clocks Everywhere题意:给出n个起始时间x和m个可以选择的事件间隔p,确定一个起始时间和时间间隔使n个起始时间都能被包含进去。解题思路:找出n个起始时间的相邻时间间隔的最小公约数t,看是否存在p满足p=t,或者p是t的因子,输出p的位置和可选择的起始时间即可...

2019-11-02 20:12:24 222

原创 算法常用函数及一些技巧

常用函数常用函数

2019-10-27 19:34:38 932

原创 CF教育场比赛总结一

教育场62:C. Playlist题意找出n首歌中不超过k首的价值和最大价值=(不超过k首歌的总时间)*min(选的歌的最小好听程度)。解题思路:把歌曲先按照k首歌的好感度排序,再按照k首歌的长度排序,利用优先队列,贪心的选取选择这首歌对总好感的贡献,结果取max。代码如下:#include<bits/stdc++.h>using namespace std;pair&l...

2019-10-26 21:16:09 261

原创 算法总结之线段树

一:线段树的创建:

2019-10-20 16:05:58 464 1

原创 树状数组及其相关模板题总结

树状数组及其相关模板题总结预备知识:1:函数:int lowbit(int x){ return x&-x; }函数返回一个数的二进制从右往左的第一个1对应的数值;比如lowbit(2)=1,lowbit(8)=8,lowbit(6)=2;计算原理,一个数与它的相反数按位与:相反数为一个数二进制取反加1:比如6的二进制为110,取反加1后为010,...

2019-10-10 15:51:38 300

原创 算法总结第三篇

算法总结第三篇本周初始拟定任务:1:牛客每天的团队赛。2:周刷题数达到15.3:做一些树形数据结构的算法题。执行情况:牛客每一天的团队赛均有参加。cometoj比赛次数一次。共参加8场比赛,平均做出2题(想哭)。洛谷树形数据结构普及组已过。并有额外刷题。...

2019-10-06 22:53:07 137

原创 算法总结第二篇

本周初始拟定任务 学会树的基础算法--最小生成树模板 学会图的基础算法--最短路基本模板,以及最短路的堆优化

2019-09-29 22:32:29 143

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除