- 博客(29)
- 收藏
- 关注
原创 JDBC学习笔记
*Employee类:**用于创建一个个的ORM思想下的对象。**EmployeeDao接口:**存放表对应的CRUD操作的抽象方法,这是为了适应不同数据库下操作语句的不同而创建的接口类。**BaseDao类:**在执行语句过程中有一些重复性的操作:获取链接、获取预编译对象、为占位符赋值、执行语句、释放资源。该类的作用就是将这些重复冗余的操作进行封装。(其中获取连接、释放资源由JDBCUtil进行封装)
2024-07-13 21:44:28
620
原创 P8783统计子矩阵
黄色矩阵 = 左上角到黄色区域 - 左上角到绿色区域 - 左上角到橙色区域 + 左上角到灰色区域(因为在减绿、橙区域时灰色区域被减了两次,需要加回来)使用getSum()计算。右相同之处,逛画展为一维滑动窗口,本题为二维滑动窗口:左右、上下。可以选择固定左右或者上下边界,以固定左右边界为例:(代码里也列出了以上下为边界的部分)直到重新<=k时,再重复以上操作。始终保持矩阵内之和<=k,将结果累加。移动上下边界:下边界向下移动,直到矩阵之和>k时,上边界向下追,双指针:二维滑动窗口。
2024-04-11 18:01:21
473
原创 P1638逛画展
所以以k记录区间内出现了多少画家,用一个数组printer[N]来记录每个画师出现的次数。此时检查左端点,只要发现所指画师出现次数>1,则将左端点后移,对应画师出现次数-1。以上操作保证了该区间包含了所有画师的画。右端点继续移动重复以上操作寻找其他答案,直到遍历到某一画师出现次数为1停止。(此时就可保存左右端点作为一次答案)将右端点不断后移,并维护画师出现的次数,每移动一次对应的画师次数+1。如果找到更优答案则进行更新,直到右端点到末尾。因为必须看到所有画师的画,直到看到所有画师均出现。
2024-04-11 11:56:39
202
原创 P8782 X进制减法
可以发现第 i 位的值是比第 i 位低的位上的进制之积再乘上第 i 位上的数值。这个进制之积可以存一个前缀和数组。算出 A−B 的结果最小可能是多少。(不要被这个“最小”吓到了,只要保证进制最小,结果即最小)假如进制分别为11 5 2。
2024-04-10 20:31:38
372
原创 P9242接龙数列
以当前末尾字母结束的最长接龙子序列=max(以当前起始字母结束的最长接龙子序列+1,以当前末尾字母结束的最长接龙子序列)以第i个数为结尾的最长接龙序列数为f[i]
2024-04-10 08:42:49
152
原创 P1044方格取数
f[i][y1][y2]=max( f[i-1][y1][y2], f[i-1][y1-1][y2], f[i-1][y1][y2-1], f[i-1][y1-1][y2-1] )+(判断是否走到了同一点,走到了同一点则加一次,不同则两个都加)f[i][y1][y2]表示两个路径分别走到(i-y1+1,y1)和(i-y2+1,y2)的数字之和。(四种情况:两个路径分别从左、左 || 上、左 || 左、上 ||上、上 走来)起点到任何一个点所需的时间t=x+y-1,那么终点的t=2*n-1。
2024-04-09 16:39:11
247
原创 P1077摆花
(当前取值之和的组合数=上一种花取值之和的组合数+当前种花的取值组合数)题目大致意思是:有n种花,每种花的盆数范围是0~a[i],求这n种花盆数取值之和恰好是m的组合数。f[i][j][k]:第i种花取j盆时,数字和为k的组合数。
2024-04-09 15:20:05
261
原创 P8784积木画
初始化:初始化的状态一定为2,方案数为1(dp[0][2]=1)dp[i][j]意义:在第i列,状态为j时,积木摆放方案数。注意:不要设为long long,会超时。
2024-04-07 17:43:29
223
原创 P8725画中漂流
第0秒时,体力是满的m,方案只有一个:dp[0][m]=1;那么向上游的距离为m-j,向下游的距离为i-(m-j);得当前位置len=d+(m-j)-[i-(m-j)]。若len<=0,则代表已经到峡谷,不可使用转移方程。条件判断:如果当前位置没有到峡谷,则进行转移方程。设原始距离为d,当时间为i时当前体力为j;:第i秒时所剩体力为j的方案。
2024-04-06 22:13:43
266
1
原创 P8651日期问题
主函数:做输入以及主逻辑的内容(不要忘记了判重),用于随时调用保证日期的顺序性。假设日期年月日为a、b、c。检查函数:检查日期的合法性。
2024-03-27 09:17:07
272
原创 P8681 完全二叉树的权值
根据题意,根节点为第一层,那么第h层的节点数为2^(h-1)个。不需要创建数组,只用在输入的同时根据这一属性对节点进行划分层数即可。:记录读到该层的第几个了,当now=2^(h-1)时,重置now与权值和sum。:记录当前的最大权值和(注意不能使用max,会与库函数的属性或者方法重名):记录当前最大权值和所在层数。
2024-03-23 22:11:41
217
1
原创 P9241飞机降落
根据以上所述,需要一个数组来记录飞机是否降落,在这里我用了st[N],计算飞机降落时间:每架飞机的可降落时间为[t,t+d],但注意还有一个附加条件是当上一架飞机降落时才可降落,所以,飞机的最早降落时间为max(t,time)。对于第一组数据,可以安排第 3 架飞机于 0 时刻开始降落,20 时刻完成降落。安排第 2 架飞机于 20 时刻开始降落,30 时刻完成降落。一架飞机降落完毕时,另一架飞机可以立即在同一时刻开始降落,但是不能在前一架飞机完成降落前开始降落。,代表是否可以全部安全降落。
2024-03-17 16:49:51
1058
1
原创 6_11四分树uva297
首先要理解题意,根据输入输出,的三个例子可以画出图(第一个就是题目上展示的,这里画的是另外两个)紫书上面的题目有一个很关键的信息遗漏了,及(每幅图都是32*32的)。
2024-03-10 13:04:32
248
1
原创 6_7二叉树的层序遍历uva122(刷题笔记)
但如果一旦执行,就再也无法找到先前的那些内存了,使用不到,但是那些内存依然存在,这就称为—内存泄露,意味着有一些内存被白白浪费了。分析题意,需要采用动态结构,根据需要建立新的节点,首先识别输入数据(节点值、路径方向),再将其建立成树,然后使用队列实现层序遍历。若字符串1<字符串2,则函数返回一个负数。以输入(11,LL)为例,则&s[1]即为11,LL),sscanf将读入的字符串解析为%d,并存入v中。输入输出函数,作用是从一个字符串中提取字符串、浮点数、整数等值,并将其保存到指定的变量中。
2024-03-06 21:44:47
339
1
原创 希尔排序的C实现
在前面的插入排序中我们知道,插入排序的优势在于能够快速处理相对有序的数据,那么有没有一种方法能够让数据变得相对有序,再进行插入排序是否就能实现排序效率上的提升呢?希尔排序就是基于插入排序的改进,基本原理就是,将待排序的一组元素按照一定的间隔分为若干个序列,分别进行插入排序。开始时间隔较大,在每轮排序中将间隔逐步减小,直到间隔为1(即普通的插入排序,间隔就是1)。希尔排序将间隔定义为一组增量序列,即位置之差为当前增量的元素属于同一组序列。
2023-12-05 20:17:24
41
1
原创 冒泡排序的C实现
假设数据长度为N,冒泡排序对于未排序部分的相邻元素进行(N-1)+(N-2)…+1=(N²-N)/2次比较,算法的复杂度量级为O(N²)。:j指向未排序部分的最后一个元素,从A末尾N-1开始,减少到i+1结束。每一次循环都与前一个元素相比较,如果前面的小,则交换。:i指向未排序部分的第一个元素,随着一次排序完毕后,i++;相当于未排序与排序的边界。数组分为两部分,左半部分为已排序部分,右半部分为未排序部分。
2023-12-05 13:59:43
31
1
原创 选择排序的C实现
若数组长度为N,则观察代码可看出,每一次i循环都要将后面的所有数遍历比较一遍,所以无论在何种情况下,选择排序都需进行(N-1)+(N-2)+(N-3)+…+1=(N²-N)/2次比较运算,用于搜索右半未排序部分的最小值,忽略常数项,选择排序的时间复杂度为O(N²)。:j指向i+1的元素,即将此次i元素与后面所有元素进行比较,依次递增,需循环到最后一个元素。:i指向待排序的第一个元素,即本次循环的待排元素,依次递增,只需要循环到n-1的位置即可。
2023-11-29 21:56:32
31
1
原创 插入排序的C实现
将未排序部分的第一个元素取出,作待排元素,与排好序部分的最后一个元素比较大小,若比他大,则将未排序的那个元素插在它后面;在最坏的情况下,每个i循环都要执行i次移动,共需要1+2+···+(n-1)=(n²-n)/2次移动,忽略常数项,复杂度为O(n²)。注意:若此i待排元素插入,则在此之后的所有元素都要进行后移,此次操作我们可以在内层循环中完成,不需要再建循环。(但注意,排好序部分只是代表元素按照从小到大的顺序排,如果在未排序部分遇到了更小的元素,则可能发生替换):i指向未排序的第一个元素,依次递增。
2023-11-28 23:15:25
25
原创 百练POJ2802小游戏
这一行的开头是“Pair m: ”,这里m是测试卡片的编号(对每个矩形板,编号都从1开始)。接下来,如果可以相连,找到连接这两个卡片的所有路径中包括线段数最少的路径,输出“k segments.”,这里k是找到的最优路径中包括的线段的数目;而在 (2, 3) 和 (3, 4) 处的游戏卡是不相连的,因为连接他们的每条路径都必须要穿过别的游戏卡片。每一步的探测方式相同,可采用枚举+递归的方式实现,每一次递归就对下一步方向进行枚举,在下一步有效的情况下,若与上一步方向相同则。但是允许路径临时的离开矩形板。
2023-11-12 17:41:41
165
2
空空如也
算法竞赛题,数据结构链表
2024-03-01
STL中list容器到底支持随机访问吗?
2023-12-09
C语言,求解答一下,为什么找不到标识符啊
2023-09-04
c语言连续赋值的问题
2023-05-04
关于for循环的问题
2023-05-03
关于do while循环
2023-05-03
安装sql sever时遇到的问题
2023-04-26
printf函数中从右到左计算不应该是输出842吗,为什么会是882?
2023-04-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人