- 博客(10)
- 收藏
- 关注
原创 蓝桥杯学习笔记(七)
以示例输入的第一个测试案例为例,当计算经纪人3到1的路径时,原本没有直达路线,但通过经纪人2中转:3→2(2分钟)+2→1(2分钟)=4分钟,但后来发现3→1有直达2分钟,于是更新为更优解。这种解法的智慧在于,将看似需要比较所有路径的问题,转化为每个节点的局部决策问题,通过动态规划的思想逐步积累全局最优解。这个解法的精妙之处在于,对于每个树杈(节点),先找到最长的枝条(子树路径),再找次长的枝条,将两者连接形成当前可能的最长路径。这表示节点0连接节点1,节点1连接节点2和3,节点2和3都回连到0。
2025-02-19 18:48:58
645
原创 蓝桥杯学习笔记(6)
例如,假设P1是[3,2,1,4,5],那么位置映射为3→0,2→1,1→2,4→3,5→4。当处理P2序列[1,2,3,4,5]时,对应的位置序列就是[2,1,0,3,4]。这里我们使用一种贪心结合二分查找的算法,维护一个动态数组dp,其中dp[i]表示长度为i+1的LIS的最小末尾元素。对于两个排列的最长公共子序列问题,传统动态规划方法的时间复杂度无法应对大数据量,但我们可以通过转换视角,将其转化为更高效的问题来求解。以样例输入中的最后一个宝物(价值8,重量1,数量3)为例,看看处理过程。
2025-02-16 22:02:52
993
原创 备战蓝桥杯学习笔记(四)
具体步骤如下:检查区间 [l, r] 是否包含1,若包含则计数加1。统计所有满足条件的相邻数对 [x, x+1] 的数量,其中 x ≥ 2。来看看代码int t;cin >> t;int l, r;// 检查是否存在单独的1ans += 1;// 计算相邻数对的数量,其中x >=2return 0;
2025-02-11 00:26:19
1012
原创 蓝桥杯备战学习笔记(三)
在每次循环中,首先取出队列前端的人,并将其重新加入队列尾端,重复这一过程m-1次。查询时,找到覆盖区间长度对应的最大幂次,将问题转化为两个预处理区间的最值,从而实现快速查询。时间复杂度:使用最小堆的优先队列操作时间复杂度为O(log n),而合并操作需要进行n-1次,因此总时间复杂度为O(n log n),适用于较大的输入规模。这种方法的时间复杂度为O(n*m),在题目给定的约束条件下是可行的,且能够高效地解决问题。每次循环中,遍历队列的前m-1个元素,将它们重新加入队列的尾端。
2025-02-07 22:46:54
912
原创 备战蓝桥杯寒假集训学习心得(二)
int l=0;//出错了,这个要在循环内部r=mid-1;}else{//先将就,看看能不能找更大的l=mid+1;l和r分别表示当前查找区间的左右边界,初始时为整个数组的范围(0到arrsize - 1)。ans_index用于记录找到的最后一个比k小的元素的索引,初始值为-1,表示尚未找到。每次循环都重新计算中间位置mid。注意,这个一定要放在循环里面写,否则每次它的mid不更新,就会陷入无限循环。至少,要让每次循环都能更新mid。
2025-01-26 19:00:24
830
原创 备战蓝桥杯寒假集训学习心得(一)
自从大二上算法与数据结构考试完之后,也算是有将近一个月没有写过代码了,但是,蓝桥杯省赛这道关却未曾改变,为了在寒假督促自己备战蓝桥杯,不让报名费付诸东流,我报名了学校的蓝桥杯集训营,接下来,我会复盘思路并对上课所讲知识点做一个小小的总结。
2025-01-23 17:54:29
895
原创 Datawhale AI夏令营 AIGC领域 学习笔记 第一次
经过了第一期夏令营的失败教训,孩子们我回来了这一次是又先想给自己一点挑战,于是报了AI大模型应用的方向,进去后发现自己还是技术力过于低下,于是和班班提了退出申请,重新选择了先前有了解过的AIGC领域。
2024-08-10 21:25:56
671
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人