学了排序二分高精度…
快排,归并
模板熟悉度++(又去看了一遍了) $主要是 \ 原理 \ 去想过程\ 然后打代码$
(我以前竟然都不是怎么干的,算是新的思维方式辽,感谢yxc,我爱介个男人,不过不是那种的)
二分
整数二分难一点,(感觉从来没有如此清晰
两种写法,类似于lower_bound
关于缩范围,x <= a[mid], == > R = mid;
高精度
相当于我重新理解了思路,然后实现了一下
重点是tmp作为每一位的标记,(存储方式是个位在前
加法:就是tmp = (A[i] + B[i]) % 10 记得可能位数会比最多的多1,最后还要判断tmp是否大于0
减法:先比较,保证大的减去小的,不然输出负号,交换两个串,
tmp = A[i] (i < lena) - tmp(借位) - B[i] (i < lenb);注意去掉前导零
乘法:大整数 乘 小整数 ,对于大整数每位 都单独乘 小整数,记住 % 10, tmp /10 再+ a[i] * b
for(int i = 0; i < len || tmp; i++)
除法:大整数 除 小整数 其实也差不多的思路, 注意要输出余数,从高位开始除
双指针
确实是个好东西,可以优化N^2 == > N
要是N^2看到超出范围, 看一下题目的性质,能不能双指针优化
动态想一下指针 j 如何移动
位运算 离散化
内容比较基本
lowbit(x) = x & -x; 返回最后一个1的位置是第几位
差分
差分数组要利用到前缀和
所以二维数组在(x1, y1) 点加一相当于 右下角所有的都加了1
以此来想象具体如何差分
hhh 支持!