蓝桥杯
俺不是西瓜太郎´•ﻌ•`
一个普通的人工智能er
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
线性DP(状态转移方程的创建)
【代码】线性DP(状态转移方程的创建)原创 2025-06-09 10:35:24 · 280 阅读 · 0 评论 -
背包问题合集(后面更新讲解,先给出代码模版)
【代码】背包问题合集(后面更新讲解,先给出代码模版)原创 2025-06-07 22:26:30 · 540 阅读 · 0 评论 -
蓝桥杯国赛题2022
首先这个题应该是一个01背包,背包容量为2022,有2022个物品,第i个物品的体积为i,只不过这里有两个限制条件,一个限制条件是和为2022,另一个限制条件为10个数,两个限制条件那就把加一维,加一维的遍历顺序还是逆序的,整体逆序遍历,转移方程为dp[i][j] = dp[i][j] + dp[i-1][j-k];这里解释一下,不管01背包怎么变,是几维的都要逆序遍历,如果正序遍历无法保证这个数字只使用一次。还有一种确定方式就是这几个数的数是无序的。如果有一定顺序那就一定不能用01背包。原创 2025-06-06 19:06:56 · 303 阅读 · 0 评论 -
混合背包(多重背包与完全背包)
【代码】混合背包(多重背包与完全背包)原创 2025-06-06 14:11:20 · 292 阅读 · 0 评论 -
并查集与拓扑排序(题目JAVA)
就是开一个数组存每个节点的父节点,然后查找和并两个方法。遇到的题不一样思考方式也不一样。可能就是改变并的方式。原创 2025-06-04 15:48:54 · 294 阅读 · 0 评论 -
java队列
java队列原创 2025-05-29 21:39:17 · 311 阅读 · 0 评论 -
区间DP概述(JAVA)
区间DP和线性DP其实从代码角度来说就是遍历处理的顺序不一样合并:即将两个或多个部分进行整合,也可以反过来;特征:能将问题分解为能两两合并的形式;求解:对整个问题设最优值,枚举合并点,将问题分解为左右两个部分,最后合并两个部分的最优值得到原问题的最优值。原创 2025-05-29 21:36:19 · 507 阅读 · 0 评论 -
动态规划-蓝桥杯-健身
这是一个完全背包的题,可以利用完全背包来解决。原创 2025-05-25 11:50:16 · 445 阅读 · 0 评论 -
第十四届蓝桥杯JAVAB组题目
这个题就是利用排序后的数处理,最大值一定要乘最小值才能不让最大值发挥他在权值上的贡献,也能最大化利用最小值的作用,这样就变成了整个问题的子问题。这个求逆元的异或和,首先模数为质数,他的欧拉函数为mod - 2。这个题首先得确定被擦掉的是什么,所以就得分类讨论,是一道模拟题。1 2 3 6,这里的最大值随便乘一个除了最小值都比整体的大。由此退出逆元值为n^(mod - 2)原创 2025-05-24 10:54:53 · 326 阅读 · 0 评论 -
欧拉降幂(JAVA)蓝桥杯乘积幂次
这个题可以使用欧拉降幂,1000000007是质数,所以欧拉函数值为1000000006.原创 2025-05-22 10:27:47 · 463 阅读 · 0 评论 -
二分查找递归(JAVA)
二分递归原创 2025-05-15 09:42:53 · 278 阅读 · 0 评论 -
子串简写(JAVA)一维前缀和, 蓝桥杯
这个题用前缀和,开两个数组,一个存前n个字符数据的c1的数字个数,另一个前n个字符c2的数字个数,然后遍历一次加起来,有一个测试点没过去,把那个存最后数的换成long,应该是这题数据范围给的不对,按说不会超。原创 2025-05-10 18:36:39 · 684 阅读 · 0 评论 -
最小质因子之和(JAVA)线性筛
文章介绍了如何通过线性筛法优化埃式筛法,以高效计算最小质因子。线性筛法通过减少重复赋值,显著降低了时间复杂度。文章中的Java代码展示了如何实现线性筛法,首先初始化一个数组minp来存储每个数的最小质因子,然后通过遍历和质数列表p来填充minp。接着,代码计算了minp数组的前缀和,以便快速查询任意范围内数的最小质因子之和。最后,通过输入测试数据,程序输出相应范围内的最小质因子和。这种方法在处理大规模数据时表现出较高的效率。原创 2025-05-19 20:22:47 · 686 阅读 · 0 评论 -
蓝桥杯国赛第十五届(JAVAB组)
第一题七边形,是一个递推式子,假设前一个为n,下一个为n + 7i-7-2i+2+1 = n + 5i-4。这个题自己画个表格标一下,首先可以确定的是为1的值,然后为2,依次类推就可以得到答案…目前只做了这三个简单题,后面的补回来。得到这个递推式子,直接写代码。运行一下就可以得到答案。原创 2025-05-19 20:17:50 · 520 阅读 · 0 评论 -
乘法逆元:费马小定理(利用快速乘法幂)(JAVA)
逆元=n^mod-2,因为1000000007是一个质数。原创 2025-05-21 21:51:50 · 250 阅读 · 0 评论 -
划分权重(01背包利用)纯暴力解决填空
这个题直接用暴力,看能填满多大的体积,比较求出最大值,其实也可以看部分,越靠近中间越大,可以推导出来,结果是一个二次函数,最大值在中间。原创 2025-05-20 16:03:26 · 210 阅读 · 0 评论 -
01背包(质数划分)
划分质数先把质数求出来,然后再定义dp[i]为质数组成i的路径条数。原创 2025-05-20 11:24:31 · 708 阅读 · 0 评论 -
完全背包(JAVA)
【代码】完全背包(JAVA)原创 2025-05-20 10:11:43 · 442 阅读 · 0 评论 -
相或为K(位运算)蓝桥杯(JAVA)
这个题是相或为k,考察相或的性质,用俩个数举例子,011001和011101后面的数不管和哪个数相或都不可能变成前面的数,所以利用这个性质我们可以用相与运算来把和k对应位置的1都积累起来,看最后能不能拼起来k如果能拼起来k那就是,否则不是,上代码。原创 2025-05-11 10:54:00 · 378 阅读 · 0 评论 -
位运算(二进制中1的个数)
这个题要求二进制中一的个数,Integer当中有一个方法可以直接统计,自己写的话就是用按位与,这里和1按位与然后累加,注意这里整数分正负。所以while循环判断n进入死循环了。原创 2025-05-09 16:42:08 · 275 阅读 · 0 评论 -
二维差分数组(JAVA)蓝桥杯
二维差分数组可以根据二维前缀和数组移项得到,对二维差分数组b[i][j]加或者减去一个数,就意味着计算二维前缀和数组后的原数组从这个点开始到最后一个点的矩形都加上或者减去这个数。所以可以根据上面的计算。原创 2025-05-09 10:00:58 · 1165 阅读 · 0 评论 -
二维前缀和(JAVA)蓝桥
二维前缀和是一种用于快速计算矩阵中任意子矩阵和的算法。其核心思想是通过预处理生成一个前缀和数组 c[i][j],表示从矩阵左上角到点 (i,j) 的矩形区域的和。前缀和数组的计算公式为:c[i][j] = a[i][j] + c[i-1][j] + c[i][j-1] - c[i-1][j-1]。在查询时,通过 c[x2][y2] - c[x1-1][y2] - c[x2][y1-1] + c[x1-1][y1-1] 可以快速得到子矩阵 (x1,y1) 到 (x2,y2) 的和。该算法在多次查询时能显著提高原创 2025-05-09 09:39:53 · 229 阅读 · 0 评论 -
动态规划 传球游戏(JAVA)
动态规划思想,主要还是分析的思想吧,题是记不完的,先看一下当前所处的位置是1,向左向右,每次向下传,可能回到1的情况就是传m次后1的个数,这里使用两个数组,交替记录。变量名老是喜欢乱标,下一个解决。原创 2025-04-25 08:29:20 · 294 阅读 · 0 评论 -
NC22637并查集带路径压缩(JAVA)
并查集就是查找和并,还是一个集合,解决在哪里的问题,连通图等问题。原创 2025-04-29 10:09:18 · 233 阅读 · 0 评论 -
牛客小白月赛116题目三
暴力过不去,需要优化一下,本来是在全部的子弹中统计,维护一个100的数据统计数组来统计,每次的遍历就变少了,才能过时间。原创 2025-04-27 18:50:50 · 261 阅读 · 0 评论 -
NC16693最简单的01背包装箱问题(JAVA)
这个题思想很简单,就是装箱,每个东西选与不选,看选与不选这个东西所能装的体积,主要是代码里可以逆着来,也可以开两个数组交替,如果顺着搜索,前面搜索的结果会影响后面的结果。原创 2025-04-29 10:05:03 · 231 阅读 · 0 评论 -
NC226831 牛客 动态规划 java 最长上升子序列(不优化纯思路)(JAVA)
搜索的过程是,dp[i][j]代表第i到j包括i与j这段的最大值,dp[i][j+1]=向前找小于这个数而且dp数组值最大。优化主要是向前找这个过程,这个过不了全部案例,思路是这样。动态规划思想,这里确定要选最后一个,这个思想比较简单,优化还没学,单调队列或者线段树优化,这个主要是用在哪个向前找的过程,原创 2025-04-25 09:58:39 · 228 阅读 · 0 评论 -
动态规划NC235948_最大子串和(JAVA)
这个题纯暴力的话简单,但是时间过不去。因为是连续的,所以就站在当前这个节点考虑两个问题,第一就是这个节点是不是第一个节点,如果前面的最大值为负那就肯定要让这个为第一个节点,如果前面的最大值为正,那就不让这个为第一个节点,所以dp[i]代表以i为结束节点的连续最大值。原创 2025-04-26 10:03:05 · 665 阅读 · 0 评论 -
poj1163(蓝桥杯)数字三角形(JAVA)
思路:首先这个用动态规划,前一个子问题的最优解是下一个问题最优解的前提,这个存储用一维数组,省空间但是计算了很多左右节点的下标。不过对时间复杂度没有影响。下面蓝桥杯的题的AC代码,poj1163那个题是需要遍历最后一行的最大值,蓝桥杯这个只需要看一下中间的数就可以。原创 2025-04-24 20:52:51 · 143 阅读 · 0 评论 -
动态规划NC235954滑雪(JAVA)
这个题滑雪是四个方向都可以滑,首先这个可以确定一下递推式子,dp[i][j]是从该位置开始的路径最大值,但是写代码的时候有一个问题就是遍历的时候,只有左边和上边可以确定,所以想到用递归,效率低但是代码好实现。原创 2025-04-26 09:09:59 · 200 阅读 · 0 评论 -
一维前缀和模板(蓝桥)
一维前缀和的目的就是为了以空间换时间,把之前已经算过的数存起来,下次需要计算的时候直接查找。// 2: 类名必须Main, 不可修改。// 1:无需package。//在此输入您的代码...原创 2025-05-07 22:45:11 · 320 阅读 · 0 评论 -
牛客(NC16708)过河卒路径条数(JAVA)
这个题典型的动态规划,这里数组开的大一点,方便边界进行处理,这个dp数组注意用long,要不然超了,我这个代码还可以优化就是map数组可以用boolean数组存,这样内存用的会少一点。原创 2025-04-24 21:57:06 · 214 阅读 · 0 评论 -
小蓝的操作(JAVA)一维差分数组
首先这个题可以发现是对区间的数进行操作,每次减一,最终a数组全部变成1,差分数组的前缀和是处理后的数组,所以可以推断出处理后的差分数组是第一个元素为1,其余的元素都为0,差分数组的目标有了,题目又强调最少操作数,初始差分数组里有正有负,这就要考虑对正数和负数的处理,差分数组第一个元素一定是大于等于1的,而且因为前缀和一定大于等于1,所以初始差分数组的每一个负数前面的数和一定大于等于这个负数,所以负数不需要处理,正数需要相加,来得到最少操作数。原创 2025-05-08 09:37:00 · 431 阅读 · 0 评论 -
一维差分数组(JAVA)
一维差分数组是为了解决对区间操作的问题:例如:对一个数组a进行操作n次,每次对l到r的数增加d。其次进行区间操作,对b[l]+d,b[r+1]-d,然后再求b数组的前缀和,就是操作后的数组。首先定义差分数组,b[i] = a[i] - a[i-1];原创 2025-05-08 09:00:29 · 188 阅读 · 0 评论
分享