- 博客(75)
- 收藏
- 关注
原创 洛谷P6365 [传智杯 #2 初赛] 众数出现的次数
使用哈希map可变长,还节省了空间,基本的思路就是桶排序的感觉,unordered_map第一个元素是作为数组的下标,然后第二个元素是出现的次数,就是累加的次数,哈希map还是比较好用的,我第一时间没能够想出怎么做,想着用dp去做了。
2025-02-27 22:42:46
199
原创 acwing动态规划(二)区间dp问题--合并石子
这个代码还是有点难理解的,最外层循环是将所有长度从从小到大,第二次循环是该长度中所有可能的区间,第三层循环是将区间中分为所有可能的两份,全部dp都是从小到大,取最小值,所以最终最大的区间的结果就是最小代价。
2025-02-27 14:37:59
215
原创 acwing动态规划(二)数字三角形
如果是下三角的话,就是两重循环,里面那重循环的最大值是外面变量的值,如果是像这题的话就是需要将i-1,j-1和i-1,j这两者数初始化为无限小,那么就是里面循环的是外重循环的最大值加一。
2025-02-26 15:20:09
70
原创 springmvc(13/158)
其实,整体来说呢,springmvc就是在spring的基础上的web项目,首先需要在pom.xml中导入各个依赖,在写一个web的xml其实映射的xml文件,就是前端发送什么样的请求需要跳转到对应的servlet中,然后就是springmvc-serlvet文件的配置,这个的名字是根据webxml中。配置的来作为开头的,里面先配置spring的组件扫描,就是注解扫描,进行自动注入属性。
2025-02-18 22:20:18
521
原创 洛谷P11042 [蓝桥杯 2024 省 Java B] 类斐波那契循环数
对于不确定长度的数组用vector容器,这样可以确保不越界,还有记得多使用一下reverse反转数组,在进制转换中也通过好用,整体的思路是好的,只不过对于数组越界中还是没能够有明确的判断。像是这种填空题的话,就直接暴力还更加省时间,在本地算完后直接提交答案即可。
2025-02-18 22:01:28
482
原创 洛谷P8707 [蓝桥杯 2020 省 AB1] 走方格
每一步都由上一步得来,即a[i][j]都由a[i-1][j]或则a[i][j-1]得来,最后a[n][m]就是答案,第一时间没有想到用dp,所以想半天想不出来。
2025-02-17 22:17:05
435
原创 洛谷P10424 [蓝桥杯 2024 省 B] 好数
也是数位判断,首先这个奇数位位奇数,偶数位为偶数,先排除了所有的偶数,然后将相邻的两位数相加必须为奇数,所有情况都符合就返回ture,否则false,时间复杂度O(n)。
2025-02-16 22:19:18
346
原创 spring6(完结)
个人觉得spring的重点在于注解开发,省去了很多耦合的问题,像是各种事务的管理,和bean类的管理都可以给spring容器管理,注入属性等等都比较方便。像是八大模式这种,放在后面八股文中再重点了解,对于源码部分也是后面会一起手敲。
2025-02-14 21:33:00
539
原创 acwing约数
约数这个就相对简单了,其实就是只需要枚举小于根号a的小约数,同时将对应的大约数求出。时间复杂度是n*根号a(a为输入的数字大小,n为输入多少个数)
2025-02-12 17:53:45
113
原创 洛谷P10901 [蓝桥杯 2024 省 C] 封闭图形个数
学习了一下对于的pair的first,second利用sort中的自定义cmp,根据题目先对second进行排序,就是对每个数字的封闭图案数量进行排序,相同再对数字大小进行排序。num数组对0-9每个数字进行映射。
2025-02-11 22:22:35
403
原创 洛谷P8681 [蓝桥杯 2019 省 AB] 完全二叉树的权值
floor向下取整后的数仍然是原来的类型,所以floor输出记得强转。虽然是简单题,就是log2的运用,然后对于同层的数据累加取最大值。
2025-02-08 20:09:03
284
原创 洛谷P8742 [蓝桥杯 2021 省 AB] 砝码称重(dp初始)
归纳蓝桥杯的这道题总结了一定对于dp的看法,虽然还没看到y总的动态规划,自己搜了搜上学期算法中学到的01背包问题。首先动态规划问题最重要的是状态转移方程,将问题抽象成数学问题,列出方程就可以得解。以后有更深的见解再更新吧,现在大致看懂了dp解题的大概思路了,基本都是两层循环加优化。
2025-02-07 21:17:07
330
原创 mybatis(134/134)完结
二级缓存 :同一个sqlsessionfactory,sqlsession关闭了才会将一级缓存提交到二级缓存中。PageHelper插件:方便进行分页,同时前端可以容易拿到对于分页相关的所有数据调用getXXX方法。一级缓存(默认情况下开启)同一个sqlsession中执行相同的查询语句走一级缓存。12天最终完结mybatis,后续找机会手敲一下源码加深了解。
2025-01-29 19:45:16
374
原创 mybatis(112/134)
实际开发中的模式:把全局的延迟加载打开。如果某一步不需要使用延迟加载,请设置:fetchType="eager"--什么意思:所有只要但凡带有分步的,都采用延迟加载。第二种方法,嵌套查询,需要分开写两个xml和接口,复用性高,可以懒查询。--延迟加载的全局开关。默认值false不开启。一对多与多对一类似,只是返回的是数组或者集合,不再赘述。
2025-01-28 14:26:39
250
原创 mybatis(104/134)
foreach标签:比如多种不同选择情况,ids为测试的传进来的参数,同时接口可以注解,如果不注解则为默认参数array,arg0。where标签 :自动生成where,取决于后面有没有条件,会自动去除条件前面的and和or,不会去除语句后面的。trim标签:自动生成where,在语句后自动去除后缀and和or。sql标签:可以提高复用性,不用重写那么多代码,好修改。动态sql标签,用于选择查询。
2025-01-28 14:16:59
287
原创 mybatis(92/134)
今天这几集都是复习前面的知识,对于多表查询的话,我们一般的返回值都会是多个表中的不同列,那么应该是没有对应的pojo类去接收值得,所以一般参数resultType设置为map。还有如果返回多个map的话可以使用list<map>去储存,不过有坏处,很难取出数据,对应的resultType也是设置为map而不是list,是查询出的元素的数据类型。自动映射,需要有规范,在核心文件中设置。可以写映射,简化操作。
2025-01-27 17:53:51
173
原创 acwing搜索与图论(三)染色法
其实这个代码挺简单的,存储图的话就两种方式邻接矩阵或者邻接表,邻接表方便dfs深度优先,深度,用深度优先进行判断相邻的两个结点可否染异色,不可以则false,然后将所有点遍历一边。
2025-01-27 14:00:55
977
原创 mybatis(78/134)
前天学了很多,关于java的反射机制,其实跳过了new对象,然后底层生成了字节码,创建了对应的编码。手搓了一遍源码,还是比较复杂的。useGeneratedKeys="true" keyProperty="id",来返回对应需要的主键如:id。对于多表联立,假设2表需要1表的主键(外键),但是原本是自增字段,那么就需要在标签中设。对于#{}与${}的区别。
2025-01-26 21:43:01
881
原创 洛谷P9420 [蓝桥杯 2023 国 B] 子 2023 / 双子数
这里第一题一开始没想到dp,了解了一下dp感觉恍然大悟,还没学到dp,只是有个基本印象,都是基于前面的基础然后后继结点更新,设计的非常精妙,还有就是c++的int的范围是在±2147483647,long也是同理,unsigned会变成两倍的正值,所以超过了20千万的值基本就需要用到longlong了,千万记得不然结果会溢出。第二题就是一个简单的暴力穷举,由于是填空题没有时空限制。先开跟求最大的p,q值大概范围,然后就是枚举剪枝的问题了。小抄一手别的的答案。
2025-01-25 22:56:30
561
原创 acwing搜索与图论(三)kruskal算法
这一部分是一个重载操作符,对于后面sort排序那里使用的,就是说sort排序将后入结构体的数据,按照从小到大排序,
2025-01-24 21:00:48
702
原创 acwing搜索与图论(三)prim算法
改进了y总的算法,初始算法可能会存在自环,如果自环是负数的那个对于更新dist数组的话,最后的总数会变小,我们需要排除自环,当t==j的时候不更新,这样就可以排除自环。不然需要提前统计res,跟dijksstra思想差不多,不过更新的数据不需要相加,是到集合的最短距离,只需要看看其他点与新入st数组的点的距离有没有更短,有的话就更新,它不只是到起点的距离。
2025-01-24 18:18:30
527
原创 洛谷刷题1-3
这里很大的问题,主要是cin输入的时候遇到空格,换行就会忽略掉后面的内容,那么如果cin和getline混用的话,cin完后缓冲区中会剩下换行符,保险起见如果两者混用的话最好就是,cin完将缓冲区的所有内容清除掉,cin.ignore(numeric_limits<streamsize>::max(),'\n');这题的思路想复杂了,我还想着排序,其实一个统计函数就好了。比较巧妙,求最小公倍数,看多少个数一次循环,直接求解就好了,N的数量级比较大,一层循环也会超时,也用了点双指针的想法(归并排序)
2025-01-23 23:08:41
285
原创 洛谷P10415 [蓝桥杯 2023 国 A] 切割
想复杂了,一重循环就够了,两重循环会超时,还有要注意数据的大小,10的九次方的话int就存不下了,用long。
2025-01-23 23:06:19
128
原创 acwing搜索与图论(二)spfa
其实整体框架跟dijkstra的算法是差不多,是根据谁更新了,采取更新它的后继结点,时间复杂度一般是m,最坏的情况是nm。
2025-01-23 22:07:14
592
原创 洛谷P8830 [传智杯 #3 练习赛] 评委打分
千万要注意存储的变量或者函数,够不够存,这个最大有1000000个数,假设每个都是100,那么sum的最大值去到了100000000八个零,所以flooat不够存。
2025-01-22 22:26:50
246
原创 acwing搜索与图论(二)堆优化的dijkstra
其实就是将基础的dijkstra算法简化过程,只将更改过的dist入队,依旧是用的贪心算法,时间复杂度是mlogn,这个是稀疏图。
2025-01-22 22:05:45
474
原创 mybatis(19/134)
大致了解了一下工具类,自己手敲了一边,java的封装还是真的省去了很多麻烦,封装成一个工具类就可以不用写很多重复的步骤,一个工厂对应一个数据库一个environment就好了。mybatis中调用sql中的delete占位符里面需要有字符,不然会报错。
2025-01-21 22:42:50
390
原创 P8772 [蓝桥杯 2022 省 A] 求和
简单ac这题两重循环的话会爆,不够时间,用前缀和可以优化到n的一次方,题目中求和的各个项可以提出a1到an这n个公共项,那么剩下的就是a2到an,至an的前缀和,先求出a2到an的前缀和,后面的就是n次运算了,不过存储前缀和的数组要用long以上的整型不然会超出空间,数据每个最大是1000,a2到an个数最多是200000,最大的话应该是200000000去到了10的八次方,看到大的数据值,最好就用大一点的整形,空间一般是够的。
2025-01-21 22:08:19
496
原创 acwing搜索与图论(二)基础dijkstra算法
其中设t=-1,然后在条件中判断t==-1这个感觉挺好用的,尤其是因为第一个输入的数不能比较,所以给他赋初值,就可以先充当极值去比较,可以运用到别的题的输入中间。dijkstra算法不是很难就,就是acwing没有特别的注解,理解还是需要些时间的,贪心算法。
2025-01-21 20:47:40
176
原创 P8738 [蓝桥杯 2020 国 C] 天干地支
第二种就是将年份加上56(60-4)得到,两种的结果都是一样的,但是我不知道为什么year-4有一个答案是错的,洛谷给不出测试用例就比较难改。这种是数组偏移,其实两种做法的核心都是将2044年%60后的到的数4偏移成0,即将jiazi年与4对应上。偏移值还是不错的,在循环队列中也用到了加偏移值%队列长度。
2025-01-21 13:34:10
1340
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人