UltraRAG 3.0:零代码构建RAG系统,从入门到实战指南

核心内容摘要

Im3d:革命性3D即时渲染库,让图形调试与数据可视化变得前所未有的简单
Windows XP图标主题:让现代系统重现经典视觉魅力

STM32嵌入式热成像系统设计与工程实践

lc1483ST表的本质就是二进制拆分只要满足传递性可加性即可和线段树树状数组二分查找的底层数学模型是一致的不得不说这种记录2^j父节点的想法太巧妙了第一次见觉得惊艳。

blow my mind 的感觉极具美感的算法让人如受洗礼一样佩服第一次想出这种算法的大佬。

类似的思想在很多算法里都有体现.

树的高度如果是N怎么办比如退化成链表

代码没变化复杂度分析没变化。

文字确实有个小错误树的最大的高度是 n 级别的所以人一个节点到距离为 1, 2, 4, 8, 16, 32 ... 的祖先最多存储到 logn 这么多祖先的距离所以状态总数是 nlogn 的。

我一直以为叫ST表

st 也用到了 binary lifting 的思想但 st 不是 binary liftingst 是指创建一个表快速求查询一个数组的最大值最小值和或者其他统计数据。

可以参考这里https://cp-algorithms.com/data_structures/sparse-table.htmlclass TreeAncestor {private:vectorvectorint dp;public:TreeAncestor(int n, vectorint parent) : dp(n) {for(int i 0; i n; i )dp[i].push_back(parent[i]);for(int j 1; ; j ){bool allneg true;for(int i 0; i n; i ){int t dp[i][j - 1] ! -1 ? dp[dp[i][j - 1]][j - 1] : -1;dp[i].push_back(t);if(t ! -

allneg false;}if(allneg) break; // 所有的节点的 2^j 的祖先都是 -1 了就不用再计算了}}int getKthAncestor(int node, int k) {if(k 0 || node -

return node;int pos ffs(k) - 1; // C 语言中 ffs(k) 求解出 k 的最右侧第一个 1 的位置1-basedreturn pos dp[node].size() ? getKthAncestor(dp[node][pos], k - (1 pos)) : -1;}};

麻花星空传媒制作有限公司-麻花星空传媒制作有限公司应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123