算法
wuzh07
这个作者很懒,什么都没留下…
展开
-
Karatsuba 乘法
将两个n位数M,N拆成前n/2和后n/2两个数a,b和c,d,那么 M=a×10n/2+bM=a×10^{n/2}+b,N=c×10n/2+d N=c×10^{n/2}+d。 MN=ac×10n+(ad+bc)×10n/2+bdMN=\mathbf {ac}×10^n+(ad+bc)×10^{n/2}+\mathbf {bd} ad+bc=(a+b)(c+d)−(ac+bd)ad+bc=\ma原创 2015-07-05 15:34:25 · 865 阅读 · 2 评论 -
四点共面问题(51nod-1265)
问题来源:51nod https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1265如果四点共面,利用这4个点产生3个向量,只要这3个向量包含全部4个点,则这3个向量共面,意味着这3个向量线性相关,那么这3个向量构成的3*3的矩阵AA秩亏缺,即四点共面⟺三向量共面⟺rank(A)<3⟺det(A)=0四点共面\Longleftr原创 2017-01-12 20:09:57 · 865 阅读 · 0 评论 -
莫比乌斯函数(51nod-1240)
莫比乌斯函数算法思路与参考代码原创 2017-01-22 00:57:11 · 626 阅读 · 0 评论 -
全排列问题(51nod-1384)
全排列问题(51nod-1384)问题来源:51nod字符串S(包含0-9,可能有重复的字符),按照字典序从小到大,输出S包括的字符组成的所有排列。回溯问题,本质是DFS问题。首先统计字符串中各个字符的出现次数,存入数组cnt[10],然后进行深度搜索。 深度搜索的规则为对于第i位,按照字典序0-9,如果cnt[k]不为0,则cnt[k]- -,进行第i+1位的搜索,回溯回来需要...原创 2018-05-03 14:47:54 · 280 阅读 · 0 评论 -
圆与三角形相交问题(51nod-1298)
圆与三角形相交问题(51nod-1298)问题来源:51nod问题核心假设圆心为C,半径为r。 如果A点在圆内,则|AC|<r|AC|<r|AC||AC|=r|AC|=r|AC|=r;在圆外,则|AC|<r|AC|<r|AC|ΔΔ\Delta的所有点都位于圆内(外),则这个三角形就整体位于圆内(外)。 |AC|<r,∀A∈Δ⇔Δ在圆内|AC|<...原创 2018-05-03 14:10:52 · 1664 阅读 · 0 评论 -
01背包问题(51nod-1085)
01背包问题(51nod-1085)问题来源:51nod总容量W,N件物品体积分别为W1,…Wn(整数),价值分别为P1,…,Pn(整数),求背包能容纳的最大价值。该问题属于动态规划问题。设当总容量不超过w,考虑前k件物品时的最大价值为p(k,w)。则p(k,w)满足 1. p(k,0)=0 2. p(0,w)=0 3. p(k,w)=p(k-1,w), Wk>w 4. ...原创 2018-05-03 14:31:18 · 205 阅读 · 0 评论