C++基础
文章平均质量分 54
明月千里赴迢遥
这个作者很懒,什么都没留下…
展开
-
树状数组简单总结(原理见以往帖子)
树状数组:快速(动态)求前缀和在线算法(支持修改)O(logn) 1:给某个位置上的数加上一个增量(修改某个元素)2:求某个前缀和即:单点修改,区间查询(sum(r)-sum(l-1))树状数组只能支持这俩问题,别的问题都得通过转化才能解决比如区间修改,单点查询需要利用差分转化为区间修改记树状数组为C[x],定义:C[x]=(x-lowbit[x],x],即x-lowbit[x]+1~x,奇数为其本身lowbit[x]=x&-x,含义是2^k,k为x...原创 2022-03-15 00:12:02 · 478 阅读 · 0 评论 -
C++ 给两直线上四个点求交点
理论代码来源Point getIntersectPoint(Line a, Line b) { double a1 = a.s.y - a.e.y, b1 = a.e.x - a.s.x, c1 = a.s.x * a.e.y - a.e.x * a.s.y; double a2 = b.s.y - b.e.y, b2 = b.e.x - b.s.x, c2 = b.s.x * b.e.y - b.e.x * b.s.y; return Point((c1*b2-c2*b1)/(a2*转载 2021-09-06 03:17:45 · 1098 阅读 · 0 评论 -
结构体初始化:构造函数 二义性
struct Node{ int r,c,dist; Node(){} Node(int r,int c):r(r),c(c){} Node(int r,int c,int dist):r(r),c(c),dist(dist){}};第三行是为了能够不经初始化就能定义结构体变量转载 2021-08-31 18:36:07 · 178 阅读 · 0 评论