![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 57
tadus_zeng
the world need balance
展开
-
跳跃表SkipList(简单的C++实现)
跳跃表C++实现原创 2023-07-19 16:25:34 · 657 阅读 · 0 评论 -
算法 - 数论 - powmod 快速幂取模
理论定理1:(a+b)mod c=(amod c+bmod c)mod c(a + b) \mod c = (a \mod c + b \mod c) \mod c(a+b)modc=(amodc+bmodc)modc证明:设a=xc+x0,b=yc+y0a = xc + x_0, b = yc + y_0a=xc+x0,b=yc+y0则(a+b)÷c=(xc+x0+yc+y0)÷c(a + b) \div c = (xc + x_0 + yc + y_0) \div c(a+b)÷原创 2022-04-18 16:11:00 · 1235 阅读 · 0 评论 -
算法 - 数论 - 最大公约数
aaa与bbb同为整数,aaa是bbb的约数记作a∣ba|ba∣b,有一整数ddd,满足d∣a;d∣bd|a;d|bd∣a;d∣b则ddd为a,ba,ba,b的公约数,现在约定a,ba,ba,b的最大公约数记作gcd(a,b)gcd(a,b)gcd(a,b).定理: gcd(a,b)=gcd(r,a);a≠0,r=bmod agcd(a,b) = gcd(r,a); a \neq 0 , r = b \mod agcd(a,b)=gcd(r,a);a=0,r=bmoda证明:设 d=gcd(a原创 2022-04-18 09:07:07 · 169 阅读 · 0 评论 -
算法 - 日期处理
简述定义星期的枚举namesapce dttm {enum week_t{ Sunday = 7 % 7, Monday = 1 % 7, Tuesday = 2 % 7, Wednesday = 3 % 7, Thursday = 4 % 7, Friday = 5 % 7, Saturday = 6 % 7};}计算其他日子的星期知道今天是星期yyy,知道一个日子距离今天xxx天,那天是星期zzz如果是今天之后的日子 z=(原创 2022-04-16 15:42:51 · 418 阅读 · 0 评论 -
计算几何专栏目录
计算几何(初) – 计算几何误差修正计算几何(初) – 二维点类原创 2022-03-26 16:45:58 · 196 阅读 · 0 评论 -
计算几何(初) -- 二维点类
设计一个二维点类,进行二维运算/**comp_geometry.hpp**/#include <cmath>/* interface */namespace cgeo{inline namespace interface{#define interface structtemplate<typename T>interface weightable{ virtual T _w(const int idx) const = 0;};temp原创 2022-03-26 16:12:10 · 252 阅读 · 0 评论 -
计算几何(初) -- 计算几何误差修正
给定一个浮点数的,判断它的符号#include <cmath>inline constexpr int sign(const double x,const double eps = 1e-8) { if (std::abs(x) < eps) return 0; if (x > 0.0) return 1; return -1;}原创 2022-03-26 14:45:57 · 404 阅读 · 0 评论 -
红黑树删除
文章目录简介删除1 叶子2 独子简介https://blog.csdn.net/weixin_43868793/article/details/123114745删除1 叶子如果欲删除的结点是一个叶子结点,即结点没有孩子,直接删除即可2 独子如果欲删除的结点只有一个子结点,那么子结点的值直接覆盖上来,再...原创 2022-03-01 11:15:28 · 301 阅读 · 0 评论 -
红黑树插入
文章目录简介插入1 根位置2 黑父3 红父红叔4 红父黑叔,左左5 红父黑叔,左右简介插入1 根位置如果树中没有元素,插入位置是根,直接插入,颜色置黑.如插入12#mermaid-svg-259EljtZfJkoMseD {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-259EljtZfJkoMseD .error-icon{fill:#552222;}#mer原创 2022-02-24 18:39:00 · 235 阅读 · 0 评论 -
红黑树详解
文章目录简介性质基本操作左旋 与 右旋向上反色插入删除源码简介性质非黑即红,父红子黑,黑叶,黑根,等黑高每个节点或者是黑色,或者是红色。(非黑即红)如果一个节点是红色的,则它的子节点必须是黑色的。(父红子黑)每个叶子节点是黑色。 [注意:这里叶子节点,是指为空的叶子节点!] (黑叶)根节点是黑色。(黑根)从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。(等黑高)基本操作左旋 与 右旋#mermaid-svg-jhko4H6SGYne7DUJ {font-famil原创 2022-02-24 18:37:44 · 240 阅读 · 0 评论 -
c++模板排序
使用用C++模板实现归并排序先实现iseq class template// seq.hpp#pragma once#include <iostream>#include <utility>template<int...xs>struct iseq {};template<int...xs>void print_seq(const iseq<xs...>& v){ constexpr int sz = sizeof.原创 2021-08-09 14:23:46 · 164 阅读 · 0 评论 -
赛马问题
问题描述条件:有25匹马,有5个赛道,每个赛道每次只能跑一匹马没有秒表,无法知道每匹马的速度每匹马状态稳定,每次比赛速度一致问题:至少几次比赛能得到25匹马中跑得最快的前三名解析25匹马分成五组,比赛五次可以得到每中的第一名,各组第一名比赛可以得到25匹马中的第一名,同时可以得出前6强前6名中,去除第一名剩下5匹马,由乘下的五匹马得出第2与第3!5 + 1 + 1 = 7# a1 ~ e5 25匹马# 从左右以速度降序排列# 从上到下每组第一名的速度降序排列[ [a1,a2原创 2021-03-26 21:56:07 · 274 阅读 · 0 评论 -
链表:有环单向链表
定义struct ListNode{ int value; ListNode* next; ListNode(int v,ListNode* nt):value(v),next(nt){} ListNode(int v):ListNode(v,nullptr){} ListNode():ListNode(0){} virtual ~ListNode()=default;};问题如何判断一个链表有环,原创 2021-03-16 13:12:37 · 110 阅读 · 0 评论 -
递归:k阶常系数线性齐次递归
// f(n) = f(n-1) + f(n-2); f(0) = f(1) = 1class Solution {public: int call_count = 0; int fibo(int n){ call_count += 1; return fibo(n-1) + fibo(n-2); }};原创 2021-03-14 21:24:45 · 969 阅读 · 0 评论