- 博客(7)
- 收藏
- 关注
原创 树状数组操作归纳总结
定义树状数组int tr[N]如果题目中已经给出现有的数组,如何把它初始化为树状数组:O(n)先预处理a数组的前缀和数组s,利用来求解。
2024-12-07 20:37:41
664
原创 最短路径求法归纳总结
最短路径:单源最短路所有边权都是正数朴素版Dijkstra算法初始化dist数组,st数组表示该节点是否已经确定最短路径n - 1次循环,每次找到距离起点最近的点,用这个点更新其他节点堆优化版的Dijkstra算法将每次找到距离起点最近的点的过程用堆优化存在负权边算法初始化dist数组遍历每条边,用边更新节点的值(更新之前要将dist数组备份)算法 一般情况下为,最坏情况下为st数组代表该点是否在队列中从起点开始更新,将更新后的不在队列中的点加入队列多源汇最短路Floyd算法。
2024-10-15 20:11:45
1511
原创 高精度算法归纳总结
高精度运算主要在使用CC++等语言时使用,对于python等自带高精度运算的语言可以不使用高精度算法的主要原理都是使用字符串或者数组等结构来模拟加减乘除竖式运算的过程如果在读入时用字符串读入数据的话,尽量将字符串中的数据存储到数组中之后再对数组进行计算,避免在直接对字符串进行处理时发生字符和数字之间的转换错误(本文中全部用vector代替数组处理)高精度运算高精度加法:逆序存储、需要处理进位高精度减法:逆序存储、需要处理前导零高精度乘法:逆序存储、需要处理进位和前导零。
2024-10-07 22:11:16
588
原创 区间DP问题归纳总结
常用技巧:将环形区间转变为线形区间,从而解决环形区间的问题区间dp记录方案数区间dp和高精度的结合(将高精度模板结合到dp中去)迭代式:自底向上递推计算,适用于简单的dp过程,一般来说,状态用了几维,就需要写几层for循环,当dp维度较高时显然不适用。记忆化搜索式:自顶向下递归计算,并且在递归时记录已经算过的值,避免重复计算,适用于高维dp或者状态转移较复杂的情况,但缺点有可能出现栈溢出的情况。一般区间dp的状态f[i][j]都表示从第i个元素到第j个元素的一个区间。
2024-10-03 22:51:14
2409
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人