自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 高并发下异步请求解决方案—@Async注解与自定义线程池

高并发下异步请求解决方案—@Async注解的使用什么是异步任务:  异步调用和同步调用是相对的,同步调用是指程序按照预定的顺序一步一步的执行,每一步必须等待上一步完成后才能执行。  而异步调用指的是:当我们执行某个功能时,并不需要等待这个功能返回结果而是发起调用后继续执行其他操作,这个功能可以在完成后通知或者回调来告诉我们。  举个简单的栗子:比如常见的浏览器下载功能,当我们点击下载之后,浏览器会发起下载请求并执行下载功能,下载过程中我们是可以在浏览器上执行其他操作的,这就是一个典型的异步调用。多线

2021-11-26 17:48:50 3048 2

原创 计算两个等长升序序列的中位数的高效算法(408真题及解析)

【2011 统考真题】一个长度为L(L≥1)的升序序列 S,处在第【L/2】个位置的数称为 S的中位数。例如,若序列S1=(11,13,15,17,19),则S1的中位数是 15,两个序列的中位数是含它们所有元素的升序序列的中位数。例如,若 S2=(2,4,6,8,20),则S1和S2的中位数是 11。现在有两个等长升序序列 A和 B,试设计一个在时间和空间两方面都尽可能高效的算法,找出两个序列 A 和 B的中位数。要求∶1)给出算法的基本设计思想。2)根据设计思想,采用 C或 C+或 Java语言描

2021-07-11 19:48:47 1003

原创 高并发库存扣减超卖问题解决,多种sql适合场景分析

方案一: id是主键索引的前提下,如果每次只是减少1个库存,则可以采用上面的方式,只做数据安全校验,可以有效减库存,性能更高,避免大量无用sql,只要有库存就也可以操作成功.场景:高并发场景下的取号器,优惠券发放扣减库存等update product set stock=stock-1 where id = 1 and stock>0方案二: 使用业务自身的条件做为乐观锁,但是存在ABA问题,对比方案三的好处是不用增加version版本字段。如果只是扣减库存且不在意ABA问题时,则可以采用上面

2021-07-05 22:25:46 1409

原创 阿里云CentOS7 + Hadoop3.1.4伪分布式集群搭建

Hadoop 下载安装这是某大学学校的镜像,似乎wget不能用,建议去网址下载wget http://mirror.bit.edu.cn/apache/hadoop/core/hadoop-3.1.4/hadoop-3.1.4.tar.gz解压到opt目录下面tar -zxvf hadoop-3.1.4.tar.gz -C /opt进入到hadoop-3.1.4文件下,创建以下文件/opt/hadoop-3.1.4/data/opt/hadoop-3.1.4/hdfs/name/opt/

2021-06-08 12:03:57 546 2

原创 阿里云CentOS7 %Cpu达到100us,kthreaddi进程处理(已解决)

突然被阿里云短信轰炸,说我服务器因攻击被限制访问部分ip及端口???登上ECS控制台,看到CPU使用率100%????top查看进程发现根本没有进程使用cpu。。。后来转到htop命令才可以看到kthreaddi这货,估计是被挖矿了。htop命令,Linux系统默认不存在htop工具,可以通过如下命令进行安装。yum install htophtop的快捷键功能列表如下,比较有用的F5、F6、F9**功能键 **对应功能说明F1Invoke htop Help查看

2021-05-24 14:24:17 2087 6

转载 UML 中的六大关系详解

一、UML中的六大关系在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。1.1、 继承关系—泛化(Generalization)指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中用extends关键字。

2021-05-01 20:38:03 13893 3

原创 大厂面试题之TCP三次握手与四次挥手,这样回答没问题

TCP连接的建立(三次握手)第一次握手:客户端向服务器发送第一次连接请求,同时客户端由CLOSED状态转变为SYN-SENT(同步已发送状态)当服务器接收到客户端的第一次请求报文之后,如果同意连接,会返回给客户端一个确认报文,同时服务器由LISTEN状态转变为SYN-RCVD状态到这里第一次握手结束第二次握手:服务端收到客户端的第一次请求报文之后,如果同一连接,会返回给客户端一个确认报文客户端收到确认报文之后会由SYN-SENT(同步已发送)转变为ESTABLISHED状态,并返回给服务端一个

2021-04-25 21:27:52 485

原创 软件协同设计:系统动态分析之—UML活动图

以下是废话:在学习UML之前为了描述系统某个功能的动态流程一般使用流程图来表示。。但是作为计科专业学生,做软件需求分析至少要应用一些专业的手段,这样才能显现你的专业能力所以 这个星期打算来学习一下UML活动图UML活动图介绍:活动图是一个重要的UML图,它主要用来描述系统的动态方面。活动图基本上是代表流程形成一个活动到另一个活动的流程图。活动可以被描述为一个系统的操作。因此,绘制控制流从一个操作到另一个。此流可以是连续的,支链的或同时的。活动图处理所有类型的流程控制,通过使用不同的元素,如交叉

2021-04-11 20:19:04 3098

原创 使用Selenium获取当当网异步加载的部分分类数据

本文记录了我学习selenium的一个小测试,目的是获取当当网这部分异步加载的分类信息在网页源码中无法直接定位到这部分元素,需要通过selenium模拟鼠标移动hover操作才能获取这部分数据环境条件:python 3.8(2.7以上应该都行)谷歌驱动下载及环境变量配置(网上相关博文很多,这里不赘述了)selenium安装(安装:pip install selenium、查看:pip list)网页结构分析:要爬取数据,分析网页源码结构是一个很重要的部分,就我的理解来看,对网页结构的理

2021-03-22 20:00:58 379 3

原创 数据库之事务并发情境下的事务隔离级别

https://www.cnblogs.com/zhoujinyi/p/3437475.html隔离级别脏读(Dirty Read)不可重复读(NonRepeatable Read)幻读(Phantom Read)未提交读(Read uncommitted)可能可能可能已提交读(Read committed)不可能可能可能可重复读(Repeatable read)不可能不可能可能可串行化(Serializable )不可能不可能不可能

2021-03-18 23:32:20 186 1

原创 安卓报错: java.lang.RuntimeException:Unable to start activity ... android.view.InflateException

报错:无法启动以下activityComponentInfo{com.example.easyapp/com.example.easyapp.activity.LoginActivity}android.view.InflateException报错E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.easyapp, PID: 6153 java.lang.RuntimeException: Unable to s

2021-03-08 17:10:19 4232 1

转载 给定字符串s,判断s[i..j]是否为回文(动态规划)

刷leetcode的时候看到的,判断 s 的子串 s[i…j] 是否为回文整理一篇博客吧(●ˇ∀ˇ●)当我们在判断 s[i…j] 是否为回文串时,常规的方法是使用双指针分别指向 i 和 j,每次判断两个指针指向的字符是否相同,直到两个指针相遇。然而这种方法会产生重复计算,例如下面这个例子:当 s=aaba 时,对于前 2 个字符 aa,我们有 2 种分割方法 [aa] 和 [a,a],当我们每一次搜索到字符串的第 i=2 个字符 b 时,都需要对于每个 s[i…j] 使用双指针判断其是否为回文串,

2021-03-07 21:08:43 588

原创 51nod 3086 - 线段覆盖加强版(贪心)

传送门:https://www.51nod.com/Challenge/Problem.html#problemId=3086题意:在一个数轴上有n条线段,线段的端点均为数轴上的整数点。现在请你删除尽量少的线段,使得剩下的线段不相交。输出剩下的线段数输入规模较大,建议使用读入优化思路:贪心先按照左端点、右端点得大小排序然后从前向后贪心的取线段,维护当前右端点now每次取线段得时候有考虑两种情况如果当前线段的左端点比now大,直接取即可(比now小就不能取,保证不交叉)如果当前线段的

2021-03-01 21:40:38 222

原创 Codeforces 103B - Cthulhu(并查集 找环和块)

传送门:https://codeforces.com/problemset/problem/103/B题意:给一个n个结点,m条边的无向图判断给定图是否满足以下条件:能被表示为有3个及以上的有根树的集合这些有根树的根连在一起形成一个环给定图中不存在多重边和自环满足条件输出"FHTAGN!",否则输出"NO"思路:题意就是要判断给定的无向图中是否只存在一个环,并且这个图是连通的并查集找环和连通块AC代码:#include<bits/stdc++.h>using nam

2021-02-26 22:03:08 230

原创 Codeforces Beta Round #83 (Div. 1 Only) - A. Dorm Water Supply(DFS)

传送门:https://codeforces.com/contest/107/problem/A题意:给n个点(房子)和p条管道(单向边)每条管道ai,bi,dia_i,b_i,d_iai​,bi​,di​表示水流能通过该管道从aia_iai​流向bib_ibi​,该管道直径为did_idi​对每个点,最多有一个出水口和一个进水口在每个有出水口而没有进水口的点安装水箱,也就是水流的起点在每个有进水口而没有出水口的点安装水龙头,也就是水流的终点求每个水箱输出到水龙头的水流的最大值,也就是求路

2021-02-24 23:30:53 215

原创 Codeforces Round #702 (Div. 3) - F. Equalize the Array(思维+前缀和)

传送门:https://codeforces.com/contest/1490/problem/F题意:给一个长度为n的数组a要使a中所有元素的出现次数一样求最少要移除元素的个数思路:英文题面的题意总是理解错误,哭了/(ㄒoㄒ)/~~要求删除多少个元素,我们可以知道,删除元素肯定是和元素出现次数相关的先把数组a转化成元素出现次数的数组b并从小到大排序,如:61 3 2 1 4 2应该转化成:4 //cnt1 1 2 2 //3和4出现一次,1和2各出现两次那我们只需要遍历

2021-02-21 16:57:19 325 1

原创 Codeforces Round #702 (Div. 3) - D. Permutation Transformation(递归)

传送门:https://codeforces.com/contest/1490/problem/D题意:给一个长度为n的排列a,将排列a化成一颗二叉树,转化规则如下在a中找到最大的数作为它的根节点最大值左侧的子排列组构成左子树,子树构成规则相同最大值右侧的子排列组构成右子树,子树构成规则相同要求每个数在二叉树中对应节点的深度思路:好家伙,一道简单递归题,题意恁给看了半天没看懂,英语阅读能力有待提高。。。递归dfs(l,r,dep)dfs(l,r, dep)dfs(l,r,dep)在区

2021-02-19 21:32:04 231

原创 Git + Github 进行版本控制和多人协作开发

首先我们在github上新建一个远程仓库,在本地也建立一个本地仓库(文件夹),可以取和远程仓库一样的名字。获取远程仓库的地址进入本地仓库,右键选择git bash here,打开git命令行然后按照输入以下代码配置必要的信息,名字是你github的名字,邮箱是你注册github的邮箱,然后在远程和本地仓库之间建立绑定。git init // 初始化本地仓库git config --global user.name "myname" // 配置github用户名git config --

2021-02-19 17:35:36 766

原创 CodeForces 1475D - Cleaning the Phone(枚举+二分)

传送门:https://codeforces.com/problemset/problem/1475/D题面:题意:手机中有n个app,现在需要腾出m的内存空间每个app占用内存aia_iai​,重要程度bib_ibi​(也就可以理解为代价吧)要求腾出m的内存空间所需要的最小代价思路:弄懂题意后好像就是一道01背包问题,写到一半发现m∈[1,109]m∈[1,10^9]m∈[1,109],只能另辟蹊径了。。因为bib_ibi​就只有两种情况{1,2},我们考虑把app的内存分到代价为

2021-02-05 00:00:41 569

原创 CodeForces - Ehab the Xorcist(思维/构造)

传送门:https://codeforces.com/problemset/problem/1325/D题面:题意:给出u,v,求一个长度最短的数组使得:a1⊕a2⊕......⊕an=ua_1⊕a_2⊕......⊕a_n=ua1​⊕a2​⊕......⊕an​=u--------------------①a1+a2+......+an=va_1+a_2+......+a_n=va1​+a2​+......+an​=v--------------------②思路:这道题需要对位运算非常了

2021-01-31 21:56:36 165

原创 51nod - Or 和 Sum(位运算)

传送门:https://www.51nod.com/Challenge/Problem.html#problemId=2527题面:题意:给定两个非负整数 pairOr,pairSum,问是否存在A,B,使得A|B=pairOr,A+B=pairSum。思路:这道题需要有一个前置知识,不然很难做:(A+B)−(A∣B)=(A&B)(A+B)-(A|B)=(A\&B)(A+B)−(A∣B)=(A&B)我们设(A+B)=X,(A∣B)=Y,(A&B)=Z,(A+

2021-01-29 16:49:59 305

原创 VJudge - Product and GCD(数论)

在这里插入图片描述

2021-01-29 15:48:02 212

原创 CodeForces - Antenna Coverage(区间DP)

题意:给一段长度为m的线段,线段上有n个路灯,每个路灯在位置xix_ixi​且能照亮范围[xi−si,xi+si][x_i-s_i,x_i+s_i][xi​−si​,xi​+si​]我们可以花费一个硬币使得某个路灯的sis_isi​的增大1,可以操作任意多次求能使区间[1,m]被路灯照亮的最小硬币花费思路:dp[i]表示线段[1,i][1,i][1,i]被覆盖所需的最小代价第一层循环dp从1到m,第二层循环遍历n个路灯,维护dp时间复杂度O(n*m)状态转移分析:x[j]<=.

2021-01-28 16:26:34 401 2

原创 CodeForces - Yet Another Segments Subset(区间DP)

题意:给定n个线段[li,ri][l_i,r_i][li​,ri​]要求选出的线段满足任意两个线段要么不相交,要么全包含。问最多能选出多少条线段。思路:由部分解推出问题的解,考虑区间DP如果对于每个线段都考虑:dp[i][j] = max{dp[i][k]+dp[k+1][j]},显然复杂度为:O(n3)O(n^3)O(n3),TLE是必然的线段端点值域很大,需要先离散化一下端点。状态表示:dp[i][j] 表示区间 [i,j] 的满足条件的最大线段数,即区间 [i,j] 的最优解状态.

2021-01-26 16:00:46 196

原创 CodeForces Number of Subsequences(计数DP)

题意:给出一段由 ‘a’,‘b’,‘c’,’?’ 组成的序列,每个’?‘都可以变成’a’,‘b’,'c’其中一个,假设有k个问号,那么最终可能序列就有3k3^k3k种,问所有可能的序列中,一共出现了多少次abc,结果对1e9+7取模。思路:状态表示:dp[i][0]:到i之前所有可能的序列种’a’一共出现的次数dp[i][1]:到i之前所有可能的序列种’ab’一共出现的次数dp[i][2]:到i之前所有可能的序列种’abc’一共出现的次数如果不考虑问号,就是一个经典的计数dp。考虑问号之后.

2021-01-25 11:10:45 208

原创 CodeForces Two Merged Sequences(贪心)

题意:将一个序列分成两个序列,一个序列严格递增,一个序列严格递减,并且两个序列中元素的相对顺序保持和原序列不变。思路:我们考虑每个元素都要进入其中一个序列那么我们需要维护一个上升序列和一个下降序列,对于当前元素a[i],有以下三种情况:只能放入递增序列或递减序列不能放入任何一个序列,输出"NO"两个序列都可以放入对于第三种情况,我们判断当前元素a[i]和它后一个元素a[i+1]的大小关系如果a[i]>a[i+1],那么将a[i]放入递减序列如果a[i]<a[i+1],.

2021-01-23 13:59:01 388 1

原创 CodeForces Lomsat gelral(DSU on tree 树上启发式合并)

传送门:https://codeforces.com/problemset/problem/600/E题意:给一颗n个点的有根树,每个点有一种颜色,一颗子树中出现次数最多的颜色称为主导颜色,主导颜色可能有多个,求这棵树的每个结点的对应子树的主导颜色之和思路:DSU on tree 树上启发式合并,先记录一下板子······························································································

2020-12-29 11:12:01 122

原创 查看电脑连过的WIFI的密码

只适用于电脑成功连上过的WIFI,而且连上之后WIFI没有改密码才行步骤如下:1.打开命令行(快捷键:win+X+A)2.输入netsh wlan show profiles查看连过的WIFI3.输入netsh wlan show profiles "WIFI名" key=clear

2020-12-21 12:10:38 104

原创 Virtual Judge 没有上司的舞会(树型DP)

传送门:https://vjudge.net/problem/51Nod-2605题面:题意:给一颗N个节点的树,每个结点iii都有一个价值r[i]r[i]r[i]对于每个结点,如果取这个节点,那么这个节点的子节点就不能取求能从这棵树获得的最大价值思路:树型DP,dfs就行对于每个职员(结点),只有两种情况,取或不去,所以开一个二维dp;dp[x][0]表示x结点为根的子树中x结点不去舞会能获得的最大价值dp[x][1]表示x结点为根的子树中x结点去舞会能获得的最大价值显然,我们需要

2020-12-19 16:40:25 123 1

原创 VJudge - Left or Right? How about neither?(Dijkstra)

传送门:https://vjudge.net/problem/Gym-102279L题意:思路:AC代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=2e5+10;struct Edge{ ll to,w,next;}e[5*maxn];struct Node{ ll u,d; bool operator < (const Node& b)

2020-12-15 10:53:01 96

原创 Maven项目部署到外置Tomcat上(windows,IDEA)

1.项目打包打开Terminal,输入mvn install最后出现BUILD SUCCESS说明打包成功,注意pom.xml配置文件里的打包形式,我的是war包然后在target目录下面就可以看到.war结尾的打包好的项目了里面就包含了项目的依赖包、字节码、配置文件等等war包也是一个压缩包,可以解压的如果有数据库的话,注意数据库配置中的端口号,部署到外置的Tomcat环境就不一样了。2.项目部署方式1(二选一):把打包好的war文件放到tomcat的weabapps目录下并解压,

2020-12-06 01:10:27 393

原创 NOWCODER xinjun与阴阳师(01背包变形)

链接:https://ac.nowcoder.com/acm/problem/14602来源:牛客网题意:思路:AC代码:#include<bits/stdc++.h>using namespace std;const int maxn=1e3+10; int t,n,m,a[maxn],v[maxn][maxn],w[maxn][maxn],dp[maxn]; int main() { cin>>t; while(t--) { cin>>n&

2020-11-24 10:27:13 108

原创 NOWCODER 吃火锅(单源最短路dijkstra()算法)

链接:https://ac.nowcoder.com/acm/problem/213225来源:牛客网题意:有n个城市,m条双向道路。第i条路线可用于从城市v[i]到城市u[i](以及从u[i]到v[i]),需要花费wi。每个城市都开了一个相同的火锅店,但是由于位置不同,每家火锅店的价格不同,为了简化问题。假设到第i个店吃的花费是val[i]。这个n个城市的人发现了这个漏洞,请你计算每个城市的人最少的吃火锅花费(花费包括来回的路费和吃火锅的费用,留在自己的城市不用路费)。思路:AC代码:

2020-11-22 14:58:38 651

原创 NOWCODER 灾难预警(二分+dfs)

链接:https://ac.nowcoder.com/acm/problem/213267来源:牛客网题意:对一个 N * N 的矩阵,每个位置有一个海拔数据 h[i][j],当水位高度大于 h[i][j] 的时候, 这个位置就会形成一个水坑,不能通过。q次询问,每次一个水位x,问能不能从(1,1)走到(n,n)思路:暴搜会T,直接排除,只能二分了,时间复杂度O(log10n)O(log_{10}n)O(log10​n)二分查找能从(1,1)走到(n,n)的水位的最大值ans,对于每个

2020-11-21 13:10:33 112

原创 NOWCODER 莫的难题(进制转换)

链接:https://ac.nowcoder.com/acm/problem/205078来源:牛客网题意:求由{5、2、1、3、9}能够组成的所有数(可重复取)中,第 C(n, m)%1e9+7 (n>=m) 个数是多大?思路:打表可以找出规律,{1,2,3,5,9}组成的树中有515^151个一位数,525^252个两位数,535^353个三位数……1 2 3 5 911 12 13 15 1921 22 23 25 2931 32 33 35 3951 52 53 55 5

2020-11-17 21:51:35 125

原创 NOWCODER 智斗恶龙(bfs)

链接:https://ac.nowcoder.com/acm/problem/210758来源:牛客网题意:从(sx,sy)的位置能到达所有距离小于等于d的格子某些格子上有宝藏,每个宝藏有其特殊的能力值.需要求x种不同能力值的宝藏的最大与最小的能力值差值的最小值.-1表是陷阱,不能到达这个格子思路:BFS出从(sx,sy)到小于等于距离d每一个点的距离deep[x][y],并把这个点入队;对于每一个出队点,判断这个位置上的能力值是否大于零(是否有宝藏),大于零就放入数组v将收到的宝

2020-11-17 12:00:15 92

原创 NOWCODER 序列(逆元求组合数+快速幂)

链接:https://ac.nowcoder.com/acm/problem/16732来源:牛客网题意:  长度为n的序列a,已知a[1]=a[n]=1,且对于2 <= x <= n,a[x] / a[x-1]是以下三个数字之一 [ 1,-2,0.5 ],问有多少种不同的序列满足题意。思路:  为了保证最后变回1,-2和0.5必须都出现2k次(0<=k<=(n-1)/2),因为-2如过出现奇数次最后的结果为负,不能变回1。AC代码:#include<bits/

2020-11-11 22:17:39 232

原创 NOWCODER 字符串的问题(KMP/string.find())

题意:思路:解法一:KMP,求next数组,假设next[n]=k,n为S长度,如果k>0,则说明s[0…k-1]=s[n-k…n-1] 即前缀和后缀匹配,否则不存在答案。如果next[1…n-1]中有值为k的,则答案为S.substr(0,next[n])S.substr(0,next[n])S.substr(0,next[n])。否则看next[next[n]],即看前缀后缀之中有无循环节,有的话,子串长就为next[next[n]]。比如 abcabcdeabcabc,nex..

2020-11-10 10:58:24 185

原创 NOWCODER 郊区春游(Floyd算法+状压DP)

链接:https://ac.nowcoder.com/acm/problem/16122来源:牛客网题意:  给n个点和m条路径和R个必经点,求经过这R个必经点得最短路径长度思路:  状压DP,套个模板先,下次再补(下次也不一定)AC代码:#include <bits/stdc++.h>using namespace std;typedef long long int ll;const ll inf=0x3f3f3f3f;ll n,m,R,dis[209][209],r[

2020-11-08 23:35:27 209

原创 NOWCODER 最大乘积(枚举和暴力+__int128的快速幂)

题意:  给你一个正整数S,若有若干个正整数的和为S,则这若干的数的乘积最大是多少,结果对2000000000000000003(共有17 个零) 取模思路:  一看到对2e18+3取模就想到了快速幂,但实际上稍微乘一下即使用 ull (264=184467440737095516152^{64}=18446744073709551615264=18446744073709551615)也会爆,没办法,只能拿出__int128来算了。。。。。。但实际上循环乘3取模就行。。。。毕竟最大只有320...

2020-10-30 16:15:24 143

空空如也

空空如也

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

TA关注的人

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