- 博客(5)
- 收藏
- 关注
原创 ACM 寒假第六讲:图论
思路:用了弗洛伊德算法计算最短路径,初始化数据为无穷大,然后遍历每一个经纪人并填写数据至矩阵中,然后用弗洛伊德算法更新最短数据,用flag标记看是否能全部联系到。思路: 用两次Dijkstra第一次求1点到其他点的最短路径,第二次求其他点到1点的最短路,直接反向建图,此时求最短路径就相当于其他点到1点的最短路径。思路:使用了树形dp,深度搜索遍历树的节点,动态规划计算每个节点的最小顶点覆盖数,最后输出树的最小顶点覆盖问题的解。学习心得:学习了Dijkstra和弗洛伊德两种最短路径算法,以及树的dp。
2025-02-19 23:15:53
385
原创 FZU ACM 寒假第六讲:动态规划
思路: 因为输入是两个排列,所以可以将第二个排列中的每个元素映射到它在第一个排列中的位置,使用二分查找优化 LIS 的求解,将时间复杂度从 𝑂(𝑛2)O(n2) 降低到 𝑂(𝑛log𝑛)O(nlogn)思路: 本题是多重背包问题,利用二进制优化缩短时间复杂度,多重背包问题转化为01背包问题,利用滚动数组缩短时间复杂度。思路:用了动态规划的思想,current_sum用于记录当前最大值,max_sum用于记录答案。思路:定义一个结构体,初始化dp数组,动态规划填写dp表格,写出转移式。
2025-02-16 23:15:32
164
原创 FZU ACM 寒假第五讲:搜索算法
第一题:自然数的拆分问题 思路:本题用到了深度搜索,用递归的方法,先拆除1,然后减去1拆分剩下的数,直到无法继续拆分,以此类推,输出结果即可第二题:填涂颜色 思路:本题用到了广度搜索,从边界开始搜索,如果为0就做标记,再搜索内部,如果为零且未被标记即标记为2,最后输出结果第三题:显示图像 思路:本题用了广度搜索,开数组记录答案,并将每个数字1记录为0,广度搜索向四周扩展,距离加1,最后输出结果第四题: 思路:本题用了深度优先搜索,把符合条件的返回ans中,分情况输出即可 第五题:第五题
2025-02-13 22:49:45
329
原创 div3数论训练
思路:当[1,1]时,最小互质区间有一个,而当[2,2],[3,3]...时没有互质区间,而最小互质区间诸如[2,3],因此分两种情况讨论即可。思路:用到了线性筛法,预处理sqrt(R)以内的素数,筛区间[l,r],找到第一个大于等于L的p的倍数,统计素数个数,最后计算并输出结果;思路: 两个数的最大公约数和最小公倍数的乘积与这两个数的乘积相同;最后求解互质的因子对。思路:用费马小定理解决,数据很大所以要用字符型读入,然后不断取模防爆,求逆元用快速幂。
2025-02-10 23:58:33
353
原创 FZUACM寒假集训第三讲
思路: 利用小根堆从小到大排序,确保消耗的体力最少,把前面两个元素先相加然后删除,再把两数之和加到总数里,以此类推即可(因为前两个元素会被重复加好多次,所以尽量选择最小的两堆来确保总数最小)学习总结:学习了如何使用队列,优先队列,了解了st表的用法,对数据处理更加严谨,对算法的运用更进一步。思路:依题目要求,利用优先队列自动排序,可以输出最大元素,运用if else语句分情况讨论即可。思路:破环成链, 数到m就删除该元素,其余情况就是把该元素移到队尾,最后输出结果。
2025-02-07 23:50:25
168
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅