摘要: IDA\(^*\)与A\(^*\) 一,问题背景 当我们在进行\(DFS\)与\(BFS\)时,常常仅仅通过简单的编号顺序或者输入顺序来决定即将被搜索到的下一个元素是什么。为了提高搜索效率,我们显然可以想到对未来到结果可能产生的代价进行预估。 二,“估价函数” 我们设计一个估价函数\(f(state 阅读全文
posted @ 2025-08-28 23:28 Saty-Temp 阅读(13) 评论(0) 推荐(0)
摘要: 树状数组 一,树状数组的整体介绍 树状数组\((Fenwick Tree)\)是一种简单而高效的数据结构,主要用于解决区间查询与单点修改问题,时间复杂度均为\(O(log n)\)。相比较于线段树,代码量更少,更适宜简单问题。 二,树状数组的算法原理 树状数组通过分层存储信息(如和,异或,计数)实现 阅读全文
posted @ 2025-08-04 22:41 Saty-Temp 阅读(50) 评论(0) 推荐(0)
摘要: 线段树 一,线段树的整体介绍 线段树$(Segment Tree)$是一种二叉树数据结构,常用于高效处理区间查询(如求和、求最值等)和区间更新。它将一个区间划分为多个子区间,每个节点代表一个区间,通过预处理和分治思想,将查询和更新操作的时间复杂度优化到$ O (\log n)$。 二,线段树的算法原 阅读全文
posted @ 2025-07-26 23:01 Saty-Temp 阅读(315) 评论(0) 推荐(0)
摘要: C++ GNU PBDS库扩展数据结构算法笔记 一、GNU PBDS库整体介绍 GNU PBDS(Policy-Based Data Structures)库是C++的一款强大扩展库,它以基于策略的设计理念为核心,为开发者提供了诸多标准C++库中缺失的高级数据结构。这些数据结构凭借高效的性能和灵活的 阅读全文
posted @ 2025-07-25 22:30 Saty-Temp 阅读(67) 评论(0) 推荐(0)