随笔分类 - 算法总结
摘要:数据链接 垃圾短信分类 解析 设一个点(x,y),对(x,y)进行分类(1,2),我们可以设每个点分别属于两个类别的概率: 如果p1(x,y) p2(x,y),那么类别为1 如果p1(x,y) 1. 分词,生成词向量空间(英文文本无需如此,中文文本可以使用jieba分词工具) 2. 对于每个向量,计
阅读全文
摘要:转化 $$a\%d=(a 1)\%d+1//防止a是d的倍数$$ $$(a 1)\%d+1=a \lfloor{\frac{a 1}{d}}\rfloor\times d$$ 换底公式 $$log_ab=\frac{log_cb}{log_ca}$$ 相关不等式: 均值不等式 $$\frac{a_1
阅读全文
摘要:基本公式 $$A_n^m=\frac{n!}{(n m)!}$$ $$C_n^m=\frac{A_n^m}{m!}=\frac{n!}{(n m)!m!}$$ $$C_n^m=C_n^{n m}$$ $$C_n^m=C_{n 1}^m+C_{n 1}^{m 1}$$ 特殊排列组合 1. 不同物品可重
阅读全文
摘要:基本定理与概念 形如$a\equiv b(mod\;m)$的式子称为同余式 1. $a\equiv b(mod\;m)$当且仅当$m\;|\;(a b)$ 2. 若$a\equiv b(mod\;m)$,$b\equiv c(mod\;m)$,则$a\equiv c(mod\;m)$(传递性) 3.
阅读全文
摘要:Description Elina is reading a book written by Rujia Liu, which introduces a strange way to express non negative integers. The way is described as fol
阅读全文
摘要:单链表 基本结构 快慢指针及其应用 (1) 判断链表中是否有圈(亦称floyed判圈法) ACM例题: Uva 11549 原理:两个人跑步,A的速度大于B,如果跑道没有环,那么A永远是领先于B,如果有环,那么A必然会追上B. (2)寻找循环链表的入口 设环周期为r,相遇点为x,起点到入口长度为a,
阅读全文
摘要:poj 2559(单调栈) 对于此题,我们需要找到每个点分别向左右能够扩展到的连续长度,能够扩展的条件为:这些区间的元素值都都大于等于当前点的值。 使用单调栈维护从起点到当前点的递增序列,如果栈顶元素大于当前点,我们就一直将栈中元素弹出,直到遇到小于当前点的元素,以此来维护栈的递增性,显然此时的点最
阅读全文
摘要:树状数组总结 对于树状数组,基本操作有以下两种 for i:1~n ans+=l[i] r[i]+(i 1 l[i]) (n i r[i]); memset(C,0,sizeof(C)); for(int i=1; i=1; i ) { r[i]=n i sum(a[i]); add(a[i],1)
阅读全文
摘要:马拉车,O(n)求回文串 对整个马拉车算法步骤做个总结: 第一步:将每个原字母用两个特殊字符包围如: 这样可以使得所有的奇数长度的回文串变成偶数长度 第二步:设置P数组P[N 3];代表S[i]的回文半径(包括自身),并设置id为迄今为止回文半径最大的字符位置,max为id+P[id],该回文串的右
阅读全文
摘要:树状数组: dp+二分 其实还有一种单调队列求最长上升子序列的方法,可是不能用来解这道题
阅读全文
摘要:最近做了几个蚂蚁问题,还蛮有趣的。。。。。 蚂蚁问题第一弹:poj 1852 Ants: Ants Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 12214 Accepted: 5366 Description An army
阅读全文
摘要:通过暴力或者dfs的方法可以很容易地得到n个数的全排列,可生成可重集的呢,例如给出一个数组a[],要求输出这个数组的全排列,与普通的求全排列不同,数组中很可能存在重复的数,所以方法都需要改一改: DFS #include"iostream" #include"cstring" #include"cs
阅读全文