
算法
rgbhi
空无一物,无限可能
展开
-
素数筛 快速进行因式分解
我们来考虑这样一个问题,如何对一个数快速的进行因式分解。 比如对12,能因式分解成哪些数呢? 咱知道,因式分解的结果,合数可以被分解为质数,质数只能被分解成1和它本身。原创 2021-09-23 16:44:39 · 126 阅读 · 0 评论 -
binary求全部子集
给一个十进制的数字 j。 一个数字用二进制表示。那么每位上不是0就是1。 求它的子集,子集的定义是,每位上是1的可以选择变成0,求输出所有的子集,用十进制输出。 if(j==0) { System.out.println("子集为:"+0); return; } for (int x = j; x != 0; x = (x - 1) & j) { System.out.println("子集为:"+x) } ...原创 2021-05-08 17:52:25 · 99 阅读 · 0 评论 -
KMP——为什么j=next[j]
题目 KMP算法,如题目所示,主要解决快速匹配的问题。但是这个不是重点,这个算法主要是解决,在一次匹配不成功的情况下,如何快速找到下一个匹配点。 如何找到下一个匹配点? 当然是前面有几个字符相同,那我继续对比下一个位置的字符不就行了吗? 真的就是这么简单! 那前面有几个字符相同啊?每个位置不同,每个位置前面的字符都不一样啊! 那就必须记录下来了,所以我们必须会开一个数组来记录每个位置,后缀最长有几个字符跟前缀相同。这算是用空间去换时间了。 什么是后缀,什么是前缀?? 前缀:就是从左边开始,连续的子字符串,原创 2021-04-21 15:29:09 · 312 阅读 · 0 评论 -
树形线段树
题目 自己写了dp版本。本着钻研的精神,看看线段树的解法。 看了官方题解的线段树的解释,云里雾里,我是真的不知道它在讲什么,挣扎了半天放弃。 遂去网上查找什么是线段树。 但是网络上的线段树跟树形数组长的很像,是将树拍扁的数组,而不是题解里的树结构。 FenwickTree是树状数组的意思! 但是概念是相通的。这里贴张正宗的线段树结构,最终的实现形式,你可以选择用树状数组,也可以像官方题解一样,真的造树形。 可能树形更直观一点?(划掉,微笑,并不) 现在来讲线段树的基本概念。如图所示,线段树就是记录区间数原创 2021-04-19 18:02:54 · 137 阅读 · 0 评论