草庐IT

分布式机器学习:PageRank算法的并行化实现(PySpark)

算法的完整实现代码我已经上传到了GitHub仓库:Distributed-ML-PySpark(包括其它分布式机器学习算法),感兴趣的童鞋可以前往查看。1PageRank的两种串行迭代求解算法我们在博客《数值分析:幂迭代和PageRank算法(Numpy实现)》算法中提到过用幂法求解PageRank。给定有向图我们可以写出其马尔科夫概率转移矩阵\(M\)(第\(i\)列对应对\(i\)节点的邻居并沿列归一化)\[\left(\begin{array}{lll}0&0&1\\\frac{1}{2}&0&0\\\frac{1}{2}&1&0\end{array}\right)\]然后我们定义Goo

CF构造题1600-1800(2)

H.HotBlackHotWhite(COMPFEST14-PreliminaryOnlineMirror(Unrated,ICPCRules,TeamsPreferred))题意有\(n\)个石头,每个石头有一个值\(a_i\),现在需要给这\(n\)个石头染色,要求\(\frac{n}{2}\)为白色,\(\frac{n}{2}\)为黑色(\(n\)为偶数),并且任何两个颜色不相同的石头\(i\),\(j\)满足:\[concat(a_i,a_j)\timesconcat(a_j,a_i)+a_i\timesa_j\not\equivZ\bmod3\]求\(Z\)与染色方法。\(conca

CF构造题1600-1800(1)

D.SameCountOne(PolynomialRound2022(Div.1+Div.2,Rated,Prizes!))题意给定\(n\)个长度为\(m\)的01序列,每次操作可以选择两个序列a1,a2,并选择一个\(pos\),std::swap(a1[pos],a2[pos]),求是每个序列中的\(1\)的个数都相等所需的最小操作数。思路可以发现(\(1\)的总数)\(\bmod\n\neq0\)时,是无解的。令\(avg=\)(\(1\)的总数)\(/n\),我们可以把这\(n\)个序列分为两类,严格小于\(avg\)的和严格大于\(avg\)的,其他的序列可以丢掉。严格大于\(av

图解 Andrew 算法求凸包

前言Andrew算法可以在\(O(n\logn)\)的时间复杂度通过单调栈分别求出散点的上凸壳和下凸壳,来求出平面上一些点的凸包。看懂这篇博客,大家需要掌握:基础计算几何知识单调栈本文中的向量恕不加\(\overrightarrow{}\)符号。凸多边形是指所有内角大小都在\([0,\pi]\)(弧度制)范围内的简单多边形。其他的“凸”请类比理解。凸包首先,什么是凸包?给你平面上的点集,你需要从中选出最少的点,使得这些点所组成的凸多边形可以包裹住其他所有点。这些点所组成的凸多边形就是凸包。譬如下面这个点集:它的凸包是:下面我将会告诉大家怎么求。序曲Andrew算法需要先对所有点按照\(x\)坐

「闲话随笔」势能分析法

「闲话随笔」势能分析法点击查看目录目录「闲话随笔」势能分析法简介分析例题二进制计数器单调栈Splay这闲话已经被催了两天了,累死我了。感谢joke3579帮我找到了Tarjan的论文。虽然没看懂只截了一下里面的图。语文考了82,需要单独给语文老师发作业,很闹心。今日推歌:盲龙默虎feat.洛天依vs言和。iKz老师的《一年一度武斗大赛》系列是不是快要更了?简介一种挺神奇的分析时间复杂度的方法。一个算法/数据结构单次操作的复杂度难以计算时可以用势能分析法。分析设第\(i\)次操作的时间复杂度为\(a_i\),显然总复杂度为\(\sum_{i=1}^{n}a_i\)。构造一个势能函数\(\phi(

CF908D New Year and Arbitrary Arrangement 题解

\(0.\)前言有一天\(Au\)爷讲期望都见到了此题,通过写题解来加深理解。\(1.\)题意将初始为空的序列的末尾给定概率添加\(a\)或\(b\),当至少有\(k\)对\(ab\)时停止(注意是“对”,中间可以间隔字符),求\(ab\)期望对数。\(2.\)思路通过查看标签通过阅读题面我们容易发现本题是一道期望DP,但是本题的状态并不很容易想到,设\(f[i][j]\)表示前缀中有\(i\)个\(a\),\(j\)个\(ab\)停止后的期望个数,这样发现转移就容易了很多,不会被\(a\)和\(b\)纠缠不清,设\(A=pa/(pa+pb)\),\(B=pb/(pa+pb)\),则有:\[f

斜率优化动态规划 学习笔记

首先看这样一个问题:洛谷P3195[HNOI2008]玩具装箱题目大意:有\(n\)个物品排成一行,第\(i\)个物品权值为\(C_i\),现要求将这些物品分成若干段,每段的花费为\(((\sum_{i=l}^{r}{C_i})-L)^2\)(其中\(l\),\(r\)为这一段的左右端点,\(L\)为给定常数),问最小的总花费.保证\(1\leqn\leq5\times10^4\),\(1\leqL\leq10^7\),\(1\leqC_i\leq10^7\).这题显然是一道DP题.令\(dp_{i}\)为考虑前\(i\)个物品的最小代价,\(sum_i=\sum_{j=1}^{i}C_j\)

万字长文概述单目3D目标检测算法

一,理论基础-相机与图像1.1,单目相机介绍1.2,针孔相机模型1.3,坐标系间的欧式变换1.4,世界坐标与像素坐标的转换1.5,三维旋转:欧拉角、旋转矩阵之间的转换二,单目3D目标检测概述2.1,3D目标检测算法介绍2.2,单目3D目标检测算法概述2.3,无人驾驶中的3D目标检测任务2.4,无人驾驶中的3D目标检测的难点三,主流单目3D检测算法3.1,Deep3Dbox算法介绍3.2,DeepMANTA算法介绍3.3,GS3D算法介绍3.4,M3D-RPN算法介绍四,总结参考资料一,理论基础-相机与图像相机将三维世界中的坐标点(单位为米)映射到二维图像平面(单位为像素)的过程能够用一个几何模

分布式机器学习:PageRank算法的并行化实现(PySpark)

算法的完整实现代码我已经上传到了GitHub仓库:Distributed-ML-PySpark(包括其它分布式机器学习算法),感兴趣的童鞋可以前往查看。1PageRank的两种串行迭代求解算法我们在博客《数值分析:幂迭代和PageRank算法(Numpy实现)》算法中提到过用幂法求解PageRank。给定有向图我们可以写出其马尔科夫概率转移矩阵\(M\)(第\(i\)列对应对\(i\)节点的邻居并沿列归一化)\[\left(\begin{array}{lll}0&0&1\\\frac{1}{2}&0&0\\\frac{1}{2}&1&0\end{array}\right)\]然后我们定义Goo

st表

位运算与&或|异或^左移>\(x\(x>>y=\frac{x}{2^{y}}\)\(2a+1=(a\(a\)%\(2=a\)&\(1\)st表当st表合并的复杂度为\(O(1)\)时,st表构建的复杂度为\(O(nlogn)\),查询的复杂度为\(O(1)\),但是st表并不支持修改。求区间最大值/最小值:复杂度\(O(n)\)st表的核心在于倍增和DP。\(f[i][j]\)表示以第\(i\)个数作为左端点,长度为\(2^{j}\)的区间的最值,也就是\([i,i+2^{j}-1]\)的区间最值。\(f[i][0]=a[i]\)\(f[i][j]=merge(f[i][j-1],f[i+2^