c++笔记
文章平均质量分 78
本专栏为作者学习c++ 时的笔记
kobe_zlx
114
展开
-
C++个人专项笔记
包括专项,总,还有题解。原创 2024-08-23 20:06:39 · 206 阅读 · 0 评论 -
C++笔记5
如果 du==dis[u],遍历 u 能到达的所有节点 v,假设 u−>v 的边权为 c,比较 dis[v] 和 dis[u]+c 的大小,如果 dis[v]>dis[u]+c ,令 dis[v]=dis[u]+c,并把 (v,dis[v]) 放入优先队列。这里用到了动态规划的思想,依次求 p[1],p[2],p[3]...p[n] 的值,在要求解 p[i] 时,之前的 p[] 值已经得到了,我们就可以利用回文串的性质和之前的 p[] 值来对求解 p[i] 的过程进行优化。原创 2024-07-25 08:22:30 · 929 阅读 · 1 评论 -
c++笔记4
第一次合并大的集合和绿色这个点,之后查询红点,红点路径的长度为O(log(n)),所以查询一次的复杂度为O(log(n)),而路径压缩之后整棵树又变成左下角的结构,如果再一次和一个绿点合并之后再查询红点,复杂度还是O(log(n))的,这就导致产生一个循环,用这样的合并和查询就可能导致不按秩合并的并查集的复杂度降到O(nlog(n))。我们不需要做任何的预处理,每次查询的时候,我们从2个节点分别向他们的根结点走,如果最终根节点是同一个,则表明两个节点在同一棵树中,否则是不同的两棵树。原创 2024-07-25 08:22:00 · 1005 阅读 · 1 评论 -
c++笔记3
记忆化搜索就是在搜索时记录一些有用的答案, 我们递归的本质就是在搜索答案,但是有些问题会被重复的搜索,所以我们就可以用空间换时间的思想, 将被搜索的问题的答案记录下来, 当下一次再被搜索到这个问题的时候, 就可以在。单调队列,即单调递减或单调递增的队列。根据记忆化搜索的思想,它是解决重复计算,而不是重复生成,也就是说,这些搜索必须是在搜索扩展路径的过程中分步计算的题目,也就是“搜索答案与路径相关”的题目,而不能是搜索一个路径之后才能进行计算的题目,必须要分步计算。原创 2024-07-25 08:21:21 · 1557 阅读 · 1 评论 -
c++笔记2
c++笔记原创 2024-07-25 08:19:50 · 1539 阅读 · 1 评论 -
c++笔记1
标准库中的 sort 是使用快速排序实现的,快速排序是一种非稳定排序,如果我们的比较函数只比较结构体的某一个值,则原有的顺序可能会被打乱,这点在我们写代码的时候要特别注意,有可能因为顺序问题造成计算结果的错误。需要做特殊的处理,可以在结构体中增加一个属性,专门用来记录在原始数组中的位置,在其它值相等的情况下,再比较这个位置数据,这相当于没有两个值是完全相等的,这种情况下稳定排序的结果与非稳定排序是相同的。同时也是一些元素的集合,这些元素称为结构体的成员,且这些成员可以为不同的类型,成员一般用名字访问。原创 2024-07-25 08:18:27 · 861 阅读 · 1 评论