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