一、大事记
2024.2.27寒假训练新生个人赛07——AC 5,rank 28
2024.2.28搜索倍增算法学习
2024.2.29寒假训练新生个人赛08——AC 5,rank 22
2024.3.1根号算法学习
二、算法学习
(一)搜索倍增
1、搜索
(1)DFS:深度优先搜索
(2)BFS:广度优先搜索
(3)启发式/剪枝/双向搜索:各种优化方法
(4)记忆化:算是和动态规划的一种结合
(5)迭代加深搜索:DFS的一种升级
(6)精确覆盖问题、重复覆盖问题
(7)Alpha-Beta剪枝:局势的一种剪枝
2、倍增
(1)快速幂
(2)RMQ问题
(3)树上倍增求LCA
3、总结:搜索算法部分在其他算法中有过学习,如DFS、BFS、记忆化,这些算法继续加深了理解,其他算法有待进一步学习
(二)根号算法
1、序列的分块化
2、分块重要思想
(1)直接分块;(2)小区间维护数据结构;(3)分类维护与询问;(4)预处理;(5)离线统计;(6)升单项降整体;(7)定期重建
3、莫队算法,带修莫队,树上莫队,树上带修莫队,回滚莫队
4、其他与根号相关
5、总结
经过对根号算法的学习,所谓根号感觉更多是一种思想,感觉是一个常量受到两个变量的制约(类似于C=x*y),x变大y变小,x变小y变大,为了复杂度的平衡,x和y都达到分界点根号C,是两者暴力的结合,网上有人称之为“暴力美学”?!
此外,莫队算法看起来似乎是一个很大的算法?!(至少现在还没有完全理解透彻,有待学习)
(三)其他新的感悟
除了以上两种算法的学习,我又重新回溯了一遍动态规划算法,对于动态规划的思想有了一些新的体悟,重要的是,我发现所有的背包问题,包括01背包,多重背包,完全背包,分组背包等似乎都可以用01背包的代码稍作修改得来,感觉还是很有趣的,然而,在动态规划算法中的单调序列问题仍有待继续提升。