- 博客(78)
- 收藏
- 关注
原创 使用Redisson解决缓存穿透、缓存击穿、缓存雪崩
Redisson在基于NIO的Netty框架上,充分的利用了Redis键值数据库提供的一系列优势,在Java实用工具包中常用接口的基础上,为使用者提供了一系列具有分布式特性的常用工具类。使得原本作为协调单机多线程并发程序的工具包获得了协调分布式多机多线程并发系统的能力,大大降低了设计和研发大规模分布式系统的难度。同时结合各富特色的分布式服务,更进一步简化了分布式环境中程序相互之间的协作。在使用Redis过程中常见问题有缓存穿透、缓存击穿、缓存雪崩,以下使用Redisson代码解决这三种问题。
2024-05-12 14:35:47
270
原创 赛前练习二十
7-1汉明距离(5分)两个整数间的汉明距离指的是这两个数对应二进制位不同的位置的数目。输入两个整数x,y, 0<=x,y<=231。输出x,y的汉明距离。输入格式:在一行输入x,y。输出格式:在一行输出x,y汉明距离。输入样例:在这里给出一组输入。例如:1 4输出样例:在这里给出相应的输出。例如:2#include<stdio.h>int main() { long long z1[100000]={0}, z2[..
2020-10-11 16:05:43
382
原创 赛前练习十九
7-1好!很有精神!(10分)海军学校四年级学生衡量一年级学生是否能开军舰靠的是精神值。精神值的计算公式如下:value=timesD∗length其中的value代表的的是一年级学生的精神值,D代表一年级学生说话声音的分贝,length记录的是说话的句子长度,times记录的是说话的时间。而他们会按照如下方式对一年级学生进行测试:在单位时间内(即times=1)让一年级学生依次进行自我介绍,同时记录他们说话声音的分贝,和自我介绍的内容。现在四年级学生们已经采集了所..
2020-10-06 17:41:12
1499
原创 问题 A: Speech Patterns (25)
时间限制 :1.000sec内存限制 :32 MB解决: 545提交: 1479统计题目描述People often have a preference among synonyms of the same word. For example, some may prefer "the police", while others may prefer "the cops". Analyzing such patterns can help to narrow down a speake...
2020-10-05 23:22:19
351
原创 杯具倒水
(机器人协会友情赞助)在你面前有两个不规则的杯具,分别容积为a升和b升,还有一个水缸(水无限多)可供装水,那么能不能通过两个杯具的装倒水操作,量出c升的水?输入格式:输入的第一行包含一个整数n(n<100),表示包括表示测试数据数 接下来n行,每行三个整数a,b,c其中(1<=a输出格式:输出n行 每行输出一个整数,1表示可量出c升水,0表示不能输入样例:在这里给出一组输入。例如:33 5 47 11 59 15 10输出样例:在这里给出相应的.
2020-10-05 14:55:19
650
原创 列出叶结点
对于给定的二叉树,本题要求你按从上到下、从左到右的顺序输出其所有叶节点。输入格式:首先第一行给出一个正整数N(≤10),为树中结点总数。树中的结点从 0 到N−1编号。随后N行,每行给出一个对应结点左右孩子的编号。如果某个孩子不存在,则在对应位置给出 "-"。编号间以 1 个空格分隔。输出格式:在一行中按规定顺序输出叶节点的编号。编号间以 1 个空格分隔,行首尾不得有多余空格。输入样例:81 -- -0 -2 7- -- -5 -4 6输出样例:...
2020-10-04 17:43:15
678
原创 列出所有祖先结点
问题描述:对于给定的二叉树,本题要求你按从上到下顺序输出指定结点的所有祖先结点。输入格式:首先第一行给出一个正整数 N(≤10),为树中结点总数。树中的结点从 0 到 N−1 编号。随后 N 行,每行给出一个对应结点左右孩子的编号。如果某个孩子不存在,则在对应位置给出 “-”。编号间以 1 个空格分隔。最后一行给出一个结点的编号i(0≤i≤N-1)。输出格式:在一行中按规定顺序输出i的所有祖先结点的编号。编号间以 1 个空格分隔,行首尾不得有多余空格。输入样例:72
2020-10-04 16:45:55
2613
原创 凯撒密码
为了防止信息被别人轻易窃取,需要把电码明文通过加密方式变换成为密文。输入一个以回车符为结束标志的字符串(少于80个字符),再输入一个整数offset,用凯撒密码将其加密后输出。恺撒密码是一种简单的替换加密技术,将明文中的所有字母都在字母表上偏移offset位后被替换成密文,当offset大于零时,表示向后偏移;当offset小于零时,表示向前偏移。输入格式:输入第一行给出一个以回车结束的非空字符串(少于80个字符);第二行输入一个整数offset。输出格式:输出加密后的结果字符串。输入样
2020-10-03 17:48:13
7412
2
原创 家谱处理(测试点3未通过)
人类学研究对于家族很感兴趣,于是研究人员搜集了一些家族的家谱进行研究。实验中,使用计算机处理家谱。为了实现这个目的,研究人员将家谱转换为文本文件。下面为家谱文本文件的实例:John Robert Frank Andrew Nancy David家谱文本文件中,每一行包含一个人的名字。第一行中的名字是这个家族最早的祖先。家谱仅包含最早祖先的后代,而他们的丈夫或妻子不出现在家谱中。每个人的子女比父母多缩进2个空格。以上述家谱文本文件为例,John这个家族最早的祖先,他
2020-10-03 17:11:06
256
原创 汉密尔顿回路
著名的“汉密尔顿(Hamilton)回路问题”是要找一个能遍历图中所有顶点的简单回路(即每个顶点只访问 1 次)。本题就要求你判断任一给定的回路是否汉密尔顿回路。输入格式:首先第一行给出两个正整数:无向图中顶点数N(2<N≤200)和边数M。随后M行,每行给出一条边的两个端点,格式为“顶点1 顶点2”,其中顶点从 1 到N编号。再下一行给出一个正整数K,是待检验的回路的条数。随后K行,每行给出一条待检回路,格式为:nV1V2⋯Vn其中n是回...
2020-10-02 17:55:16
688
原创 小字辈
本题给定一个庞大家族的家谱,要请你给出最小一辈的名单。输入格式:输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) —— 简单起见,我们把家族成员从 1 到 N 编号。随后第二行给出 N 个编号,其中第 i 个编号对应第 i 位成员的父/母。家谱中辈分最高的老祖宗对应的父/母编号为 -1。一行中的数字间以空格分隔。输出格式:首先输出最小的辈分(老祖宗的辈分为 1,以下逐级递增)。然后在第二行按递增顺序输出辈分最小的成员的编号。编号间以一个空格分隔,行首尾不得有多余空格。
2020-10-02 15:32:14
302
原创 猴子选大王
一群猴子要选新猴王。新猴王的选择方法是:让N只候选猴子围成一圈,从某位置起顺序编号为1~N号。从第1号开始报数,每轮从1报到3,凡报到3的猴子即退出圈子,接着又从紧邻的下一只猴子开始同样的报数。如此不断循环,最后剩下的一只猴子就选为猴王。请问是原来第几号猴子当选猴王?输入格式:输入在一行中给一个正整数N(≤1000)。输出格式:在一行中输出当选猴王的编号。输入样例:11输出样例:7#include<iostream>#include<vecto
2020-10-02 14:47:09
211
原创 最短工期
一个项目由若干个任务组成,任务之间有先后依赖顺序。项目经理需要设置一系列里程碑,在每个里程碑节点处检查任务的完成情况,并启动后续的任务。现给定一个项目中各个任务之间的关系,请你计算出这个项目的最早完工时间。输入格式:首先第一行给出两个正整数:项目里程碑的数量N(≤100)和任务总数M。这里的里程碑从 0 到N−1编号。随后M行,每行给出一项任务的描述,格式为“任务起始里程碑 任务结束里程碑 工作时长”,三个数字均为非负整数,以空格分隔。输出格式:如果整个项目的安排是合理可行的,在...
2020-10-01 19:30:46
3337
1
原创 高空坠球
皮球从某给定高度自由落下,触地后反弹到原高度的一半,再落下,再反弹,……,如此反复。问皮球在第n次落地时,在空中一共经过多少距离?第n次反弹的高度是多少?输入格式:输入在一行中给出两个非负整数,分别是皮球的初始高度和n,均在长整型范围内。输出格式:在一行中顺序输出皮球第n次落地时在空中经过的距离、以及第n次反弹的高度,其间以一个空格分隔,保留一位小数。题目保证计算结果不超过双精度范围。输入样例:33 5输出样例:94.9 1.0#include<iostre
2020-10-01 18:03:06
486
原创 汉诺塔的递归实现
以递归方式求解汉诺塔的问题(n, a, b, c),即将N个盘子从起始柱(标记为“a”)通过借助柱(标记为“b”)移动到目标柱(标记为“c”),并保证每个移动符合汉诺塔问题的要求。输入格式:输入为一个正整数N,即起始柱上的盘数。输出格式:每个操作(移动)占一行,按柱1 -> 柱2的格式输出。输入样例:3输出样例:a -> ca -> bc -> ba -> cb -> ab -> ca -> c#incl
2020-09-29 14:13:50
154
原创 出租
下面是新浪微博上曾经很火的一张图:一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]=2对应arr[2]=1,index[1]=0对应arr[0]=8,index[2]=3对应arr[3]=0,以此类推…… 很容易得到电话号码是18013820100。本题要求你编写一个程序,为任何一个电话号码生成这段代码 —— 事实上,只要生成最前面两行就可以了,后面内容是不变的。输入格式:输入在一行中给出一个由11位数字组成的手机...
2020-09-29 14:04:43
231
原创 输出全排列
请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间。输入格式:输入给出正整数n(<10)。输出格式:输出1到n的全排列。每种排列占一行,数字间无空格。排列的输出顺序为字典序,即序列a1,a2,⋯,an排在序列b1,b2,⋯,bn之前,如果存在k使得a1=b1,⋯,ak=bk并且ak+1<bk+1。输入样例:3输出样例:..
2020-09-28 15:36:55
731
原创 简化的插入排序
本题要求编写程序,将一个给定的整数插到原本有序的整数序列中,使结果序列仍然有序。输入格式:输入在第一行先给出非负整数N(<10);第二行给出N个从小到大排好顺序的整数;第三行给出一个整数X。输出格式:在一行内输出将X插入后仍然从小到大有序的整数序列,每个数字后面有一个空格。输入样例:51 2 4 5 73输出样例:1 2 3 4 5 7 #include<iostream>using namespace std;int main().
2020-09-28 14:49:37
351
原创 打印学生选课清单
假设全校有最多40000名学生和最多2500门课程。现给出每门课的选课学生名单,要求输出每个前来查询的学生的选课清单。输入格式:输入的第一行是两个正整数:N(≤40000),为前来查询课表的学生总数;K(≤2500),为总课程数。此后顺序给出课程1到K的选课学生名单。格式为:对每一门课,首先在一行中输出课程编号(简单起见,课程从1到K编号)和选课学生总数(之间用空格分隔),之后在第二行给出学生名单,相邻两个学生名字用1个空格分隔。学生姓名由3个大写英文字母+1位数字组成。选课信息之后,在一行内给出了
2020-09-27 21:18:31
282
原创 统计学生平均成绩与及格人数
本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。输入格式:输入在第一行中给出非负整数N,即学生人数。第二行给出N个非负整数,即这N位学生的成绩,其间以空格分隔。输出格式:按照以下格式输出:average = 成绩均值count = 及格人数其中平均值精确到小数点后一位。输入样例:577 54 92 73 60输出样例:average = 71.2count = 4#include&l
2020-09-27 20:33:15
4792
原创 字符串的冒泡排序
我们已经知道了将N个整数按从小到大排序的冒泡排序法。本题要求将此方法用于字符串序列,并对任意给定的K(<N),输出扫描完第K遍后的中间结果序列。输入格式:输入在第1行中给出N和K(1≤K<N≤100),此后N行,每行包含一个长度不超过10的、仅由小写英文字母组成的非空字符串。输出格式:输出冒泡排序法扫描完第K遍后的中间结果序列,每行包含一个字符串。输入样例:6 2bestcateastafreeday输出样例:bestacatdayeas
2020-09-27 20:23:15
1449
原创 Left-pad
根据新浪微博上的消息,有一位开发者不满NPM(Node Package Manager)的做法,收回了自己的开源代码,其中包括一个叫left-pad的模块,就是这个模块把javascript里面的React/Babel干瘫痪了。这是个什么样的模块?就是在字符串前填充一些东西到一定的长度。例如用*去填充字符串GPLT,使之长度为10,调用left-pad的结果就应该是******GPLT。Node社区曾经对left-pad紧急发布了一个替代,被严重吐槽。下面就请你来实现一下这个模块。输入格式:输入在第
2020-09-26 14:39:11
422
1
原创 两个有序链表序列的合并
已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。输入样例:1 3 5 -12 4 6 8 10 -1输出样例:1 2 3 4 5 6 8 10#include<stdio.h>
2020-09-25 17:25:23
1186
原创 九宫格输入法
假设有九宫格输入法键盘布局如下: [ 1,.?! ] [ 2ABC ] [ 3DEF ] [ 4GHI ] [ 5JKL ] [ 6MNO ] [ 7PQRS ] [ 8TUV ] [ 9WXYZ ] [ 0空 ]注意:中括号[ ]仅为了表示键盘的分隔,不是输入字符。每个中括号中,位于首位的数字字符即是键盘的按键,按一下即可输入该数字字符。多次按同一个键,则输入的字符依次循环轮流,例如按两次3,则输入D;按5次7,则输入S;按6次2,则输入A。按键0的输入组合是
2020-09-25 15:35:16
1007
原创 素数对猜想
让我们定义dn为:dn=pn+1−pn,其中pi是第i个素数。显然有d1=1,且对于n>1有dn是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N(<105),请计算不超过N的满足猜想的素数对的个数。输入格式:输入在一行给出正整数N。输出格式:在一行中输出不超过N的满足猜想的素数对的个数。输入样例:20输出样例:4#include<iostream>#inc
2020-09-24 18:50:29
286
原创 王道c语言
#include<stdio.h>#include<stdlib.h>#include<string.h>/* 1.整型变量 int main(){ int i=7; short s=0x80fb; long l=10;//32位long是4字节 ,64位的8个字节 long long l2=20;//32为的是8个,64位是8个字节 unsigned short us=0x80fb;}*/ /* 5.scanf读取标准输入 %d.
2020-09-19 23:13:17
1832
原创 c语言中 (n & 1)
首先,a&b表示,a和b在计bai算机中存储的对应二进制du码按位取与:zhi例如:a的二进制dao码为:0111,b的二进制码为:0011时:0111& 0011= 0011对应十进制形式为:7&3=3;同理:因为1的对应存储的二进制码除了最低位,其他位都是0,所以,n&1要么为1(n为奇数时,n的最低位为1),要么为0(n为偶数时,n的最低位为0)。综上可得:n&1等效于 n%2==1...
2020-07-12 15:38:16
4183
原创 c3p0连接异常处理
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@11d9f05 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (
2020-06-09 08:04:55
275
原创 第 8 章 初始 JSTL(下)
8.5.3 流迭代器流迭代器的思想是将输入输出流当做序列,用迭代器去遍历。ostream_iterator:输出流迭代器,用于向ostream流写入数据; instream_iterator:输入流迭代器,用于从istream流读取数据; ostreambuf_iterator:输出流缓冲区迭代器,用于向流缓冲区写入数据; istreambuf_iterator:输入流缓冲区迭代器,用于从流缓冲区读取数据;1.输出流迭代器用于向流中写入数据,它是利用“<<”操作符将指定类型的
2020-05-25 18:21:58
270
原创 第 8 章 初识 STL(上)
8.2 序列式容器8.2.1 序列式容器概述1.vector(向量)的实现及访问特点动态分配的数组。向量容器中插入新元素时,插入位置之后的元素都要被顺序地向后移动,效率不高。在删除向量容器中的元素时,被删除元素后面的元素会顺序向前移动,将被删除元素留下的空位补上,而后面闲置的空间并不会被释放,效率不高。2.deque(双端队列)的实现及访问特点向两端加入新元素时,如果这一段的分段数组未满,则可以直接加入,如果这一段的分段数组已满,只需创建新的分段数组,并把数组的首地址存储到d..
2020-05-25 17:10:43
429
原创 3.4 数据查询
3.4.1 单表查询1.选择表中的若干列(1)查询指定列SELECT Sno,SnameFROM Student;(2)查询全部列SELECT *FROM Student;(3)查询经计算的值SELECT Sname,2014-Sage /*查询结果的第2列是一个算数表达式*/FROM Student;指定别名来改变查询结果的列标题。SELECT Sname NAME,'Year of Birth;' BIRTH,2014-Sage BIRTHDAY,LOW
2020-05-23 19:01:59
231
原创 第 1 章 初识 C++
目录1.1 C++简介1.1.1 C++的发展史1.1.2 C++的特点1.1.3 C++应用领域1.2第一个C++程序1.iostream文件2.命名空间匿名空间3.cin与cout1.3 C++ 对 C 语言的扩充1.3.1 bool 类型1.3.2 C++ 中的类型转换1.static_cast<>2.const_cast<>3.dynamic_cast<>4.reinterpret_cast<.
2020-05-22 23:39:19
746
原创 第10、11章 数据库连接池与DBUtils工具、JSP 开发模型
Chapter 10数据库连接池与DBUtils工具10.1 数据库连接池JDBC由于每操作一次数据库,都会执行一次创建和断开Connection对象的操作,这种频繁的操作Connection对象十分影响数据库的访问效率,并且增加了代码量。Apache组织提供了DBUtils工具类库,该类库实现了对JDBC的简单封装,能在不影响性能的情况下极大地简化JDBC的编码工作。—— 什么是数据库连接池在JDBC编程中,每次创建和断开Connection对象都会消耗一定时间和IO资源。这是因为Jav.
2020-05-22 13:52:17
1109
原创 第9章 JDBC
目录9.1 什么是JDBC9.2 JDBC 常用的 API9.2.1 Driver 接口9.2.2 DriverManager类9.2.3 Connection 接口9.2.4 Statement 接口9.2.5 PreparedStatement 接口9.2.6 ResultSet 接口9.3 实现第一个JDBC程序9.4 PreparedStatement对象9.5 ResultSet对象【任务9】使用JDBC完成数据的增删改查9.1 什么是JD.
2020-05-22 13:48:51
673
原创 第8章 Servlet高级
目录8.1 Filter 过滤器8.1.1 什么是Filter8.1.2 实现第一个Filter程序8.1.3 Filter 映射8.1.4 Filter 链8.1.5 FilterConfig 接口【任务8-1】使用Filter实现用户自动登录【任务8-2】使用Filter实现统一全站编码8.2 Listener 监听器——Servlet 事件监听器概述【任务8-3】监听域对象的生命周期【任务8-4】监听域对象的属性变更8.1 Filter 过滤器8.1
2020-05-22 10:24:42
532
1
原创 第7章 EL表达式和JSTL
目录7.1 初识 JavaBean7.1.1 什么是 JavaBean7.1.2 访问 JavaBean 的属性7.1.3 BeanUtils 工具7.2 EL 表达式7.2.1 初始 EL7.2.2 EL 中的标识符7.2.3 EL 中的保留字7.2.4 EL 中的变量7.2.5 EL 中的常量1.布尔常量2.整型常量3.浮点数常量4.字符串常量5.Null常量7.2.6 EL 中的运算符1.点运算符(.)2.方括号运算符3.算术
2020-05-21 23:04:43
1632
原创 第6章 JSP技术
在动态网页开发中,经常需要动态生成HTML内容,例如,一篇新闻报道的浏览次数需要动态生成。这时,如果使用Servlet来实现HTML页面数据的统计,需要调用大量的输出语句,使静态内容和动态内容混合在一起,导致程序非常臃肿。为了克服Servlet的这些特点,Oracle(Sun)公司推出了JSP技术。6.1 JSP概述6.1.1 什么是JSPJSP全名是Java Server Pages,它是建立在Servlet范围之上的动态网页开发技术。在JSP文件中,HTML代码与Java代码共同存在,其中,
2020-05-21 15:24:08
1641
2
原创 第5章 会话及其会话技术
当用户通过浏览器访问Web应用时,通常情况下,服务器需要对用户的状态进行跟踪。例如,用户在网站结算商品时,Web服务器必须根据请求用户的身份,找到该用户所购买的商品。在Web开发中,服务器跟踪用户信息的技术成为会话技术。接下来,本章将针对会话及其会话技术进行详细的讲解。5.1 会话概述在日常生活中,从拨通电话到挂断电话之间的一连串的你问我答的过程就是一个会话。Web应用中的会话过程类似于生活中的打电话过程,它指的是一个客户端(浏览器)与Web服务器之间连续发生的一系列请求和响应过程,例如,一个用户在
2020-05-21 07:57:23
2804
原创 第4章 请求和响应
Servlet最主要的作用就是处理客户端请求,并向客户端作出响应。为此,针对Servlet的每次请求,Web服务器在调用service()方法之前,都会创建两个对象,分别是HttpServletRequest和HttpServletResponse。其中,HttpServletRequest用于封装HTTP请求消息,简称request对象。HttpServletResponse用于封装HTTP响应消息,简称response对象。request对象和response对象在请求Servlet过程中至关重要,接下
2020-05-19 18:49:49
2967
1
原创 第3章 Servlet基础
基于Java的动态Web资源开发,Sun公司提供了Servlet和JSP两种技术。Servlet 概述Servlet是使用Java语言编写的运行在服务器端的程序。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet主要用于处理客户端传来的HTTP请求,并返回一个相应,它能够处理的请求有doGet()和doPost()等方法。Servlet由Servlet容器提供,所谓的Serv
2020-05-18 19:57:46
1393
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人