![](https://img-blog.csdnimg.cn/20210127231421312.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
积累 算法篇
文章平均质量分 59
在学习算法的道路上积累下来的知识
wizardAEI
百度acg基础架构-前端开发
展开
-
利用中位数求最短距离之和
最短距离之和针对问题:1.X轴上有N个点,求X轴上一点使它到这N个点的距离之和最小,输出这个最小的距离之和。2.X轴上有N个点,求X轴上使它到这N个点的距离之和最小的点。相关定理:1.某点与两定点距离之和最小当且仅当动点在定点之间2.推广:当定点数超过2时,某点与两定点距离之和最小,当且仅当动点在两侧定点数相同的定点之间或定点上(当定点数为奇数时,取中位数的点)举例:1 2 4 7 则取2 3 4都为距离定点的距离之和最短的点;1 5 7 则取5为距离定点距离之和最短的点例题:原创 2021-02-20 11:04:34 · 1299 阅读 · 0 评论 -
二分查找(while形式实现)
while(l<=r){mid=(r+l)/2;if(x==mid){//执行操作}elseif(x<mid)r=mid-1;if(x>mid)l=mid+1;}原创 2021-02-06 00:50:22 · 217 阅读 · 0 评论 -
快读的使用方法(实现四类数据快读)
快速读入函数是利用字符读入比正常读入数字或字符串更加快速的原理而写成的,主要应对卡常的题目文章目录各类数据的快读函数:int型:longlong int型:string型:double型:具体使用方法:各类数据的快读函数:int型:inline int IntRead(){ char ch = getchar(); int s = 0, w = 1; while(ch < '0' || ch > '9') { if(ch == '-')原创 2021-01-30 19:08:56 · 1289 阅读 · 0 评论 -
lower_bound( )和upper_bound( )的基本用法
lower_bound( )和upper_bound( )是C++ STL模板库中的函数,其作用可以看作是一个简单的二分模板。基本使用方法:lower_bound:参数:lower_bound(首地址begin,末地址end+1,目标值);返回值:返回在指定区域内查找大于或等于目标值的第一个元素地址;特殊情况:在指定区域内未找到大于或等于目标值的元素则返回末地址end。upper_bound:参数:upper_bound(首地址begin,末地址end+1,目标值);返回值:返回在指定原创 2021-01-30 18:43:41 · 1262 阅读 · 0 评论 -
什么是同余运算及同余运算注意事项
模运算的加法,减法,乘法和四则运算类似A * B % C = (A%C * B%C)%C(A + B)%C = (A%C + B%C)%C(A - B)%C =(A%C - B%C)%C -->应为(A%C-B%C+C)%C,详见(A-B)%C的同模运算改动 但是除法并非如此,因为很大的可能会有小数或者是分数在除法的运算中出现,这样子的话,结果就是不对的。举一个例子:5/35/3 % 2=1.6666666666666666666666666666667,但是(5%2/3%2)%2=1。原创 2020-09-29 14:47:10 · 712 阅读 · 0 评论 -
快速幂基本性质和一些优化写法
前言,高次幂的一般计算:求 a^b % m的值,时间复杂度O(b)利用for来写,每一次循环都 mod m (利用模运算—>可在网站首页搜索"模运算"了解同模运算加减乘除定理)结果:b接近于10亿时,计算机运算时间接近于18秒快速幂的简单介绍:快速幂的递归写法前言:我们知道,3^4= 3^2 * 3^2 = 3^1 * 3^1 * 3^1 * 3^1 ;那么我们如果先将32的值计算出来,储存在临时变量p中,那么此时,34中需要计算的量就为:3^4= 3^2 * 3^2 = 3^1 *原创 2020-09-29 14:45:21 · 181 阅读 · 0 评论 -
鸽巢原理及推广应用
简单形式定理:如果把n+1个物体放入n个盒子,至少有一个盒子包含两个或更多的物体。证明:反证法 n个盒子每个盒子至多一个物品,总数至多为n,与有n+1个物体矛盾。意义:当某一范围内最多可规定出m个“类”,则当此范围内的元素多于m时,可知必定有某个“类”的元素大于1推广1(有关mod):n个数mod m 时,由于一个数mod m,可产生从0到m-1的余数,所以此时可看作有m个“类”,所以当n>m时,一定存在有ai mod m==aj mod m。推广1.1:有理数中的无限位小数必定在某一位原创 2020-09-29 14:41:09 · 743 阅读 · 0 评论 -
组合数计算(从1000到1e9的组合数各类求法)
组合数涉及的问题很多,求解过程中涉及的定理判定也有很多,期间断断续续参考了很多大佬们的博客,最终进行了总结。在此我使用用问题引入算法的方法来一步一步了解组合数。简单的组合数问题(运用快速幂及递归实现杨辉三角)组合数求解像关于组合数求和问题如∑ Cni(0<=i<=n) 可利用快速幂,此时∑ Cni = 2^n此为二项式定理推导出的结果 练习题可见洛谷P3414若求较小的组合数如C(n,m)(m<=n<=1000 保守估计1000,实际可能可以更大些,但不会超数量级原创 2020-09-29 14:40:16 · 2288 阅读 · 1 评论