Kruskal算法模板
...
Java日期类使用技巧
Java日期类使用技巧 说明: Java特有的日期类的使用 Java代码模板: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112import java.time.Duration;import java.time.LocalDate;import java.time.LocalDateTime;import java.time.temporal.ChronoUnit;public class DateJudge { public static void main(String[] args) { LocalDateTime nowDateTime =...
KMP算法模板
KMP 说明: KMP算法其实主要的作用就是匹配子字符串,就比如: 父串:aabacdca 子串:acd 这里我们要查找父串中是否有子串,那么就可以用KMP算法。 而KMP算法其实有点像一个状态机,或者说一个dp? 其主要特点还是记录转态回溯。 KMP主要难点在于其中next数组的计算。next数组的计算方式是“前缀和后缀公共部分的最大长度”。比如一个字符串ababa,他的前缀是可以是a,ab,aba,abab(不包含最后一位),后缀是a,ba,aba,baba(不包含第一位)。 Java代码模板: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455/** * @description: KMP算法 * KMP是一种字符串匹配算法,他是一种时间复杂度低,比较优秀的一种字符串匹配算法,一般可以拿来做一下字符串匹配类的题目。他与一般的暴力匹配比较其有点就是 *...
Manacher算法模板
Manacher 说明: Manacher算法主要是用于字符串查找最长回文子串,其原理就是在原本的字符串插入其他特殊符号达到把我们所有需要所有需要匹配的回文都变成了奇回文,并且以其奇回文的中点向左右扩散计算其回文长度。 Java代码模板(时间复杂度O(n)): 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.util.StringTokenizer;/** * * @author 长白崎 * */public class ManacherStudy { final static PrintWriter out = new...
线段树算法模板
线段树 说明: 线段树模板 推荐视屏: 【喵的算法课】线段树 数据结构【6期】_哔哩哔哩_bilibili 推荐文章: 《算法竞赛》上册 罗勇军...
全排列
...
分解质因数
分解质因数 定义: 若一个正整数无法被除了 1 和它自身之外的任何自然数整除,则称该数为质数(或者素数),否则称该自然数为合数。 说明: 分解质因数的主要作用就是将数字分解成多个质数因数,这些因数相乘等于这个数。 推荐文章: (158条消息) 分解质因数_质因数分解_晴空๓的博客-CSDN博客 ACM——常见的几种分解质因子的方法 - 知乎 (zhihu.com) 题目推荐 4658. 质因数个数 - AcWing题库 Java代码模板: 123456789101112131415161718192021222324252627282930313233343536/** * @description: 分解质因数 * @author 长白崎 * @date 2023/5/6 10:33 * @version 1.0 */public class 分解质因数 { public static void main(String[] args) { //测试条例,可以忽略 System.out.println(slove(10)); ...
判断是否为素数(质数)
判断是否为素数(质数) 说明: 质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。(0,1不是素数) Java代码模板(试除法,时间复杂度为O(n)O(\sqrt{n})O(n)) 1234567891011121314151617181920212223242526272829/** * @description: 质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。 * @author 长白崎 * @date 2023/3/30 12:29 * @version 1.0 */public class PrimeNumber { public static void main(String[] args) { //测试集,这里是判断100是否为素数 System.out.println( primeNumber(100) ); } /** * 判断素数模板 * @param num 需要判断的数字 * @return...
并查集
并查集 介绍: 此算法主要是用于查找树中的一结点的根结点,通常会用作查找匹配两个节点的根节点是否是同一个。 Java代码模板: 1234567891011121314151617181920212223242526272829303132333435363738/** * @description: TODO * @author 长白崎 * @date 2023/3/25 16:34 * @version 1.0 *//** * 并查集主要作用就是搜索两棵树的父节点是否是同一个节点。 */public class Main { public static void main(String[] args) { //并查集中用于记录每个结点的父节点的数组,数组下标代表的就是对应节点,对应下标数组元素的内容代表的是其父结点。 int parent[] = new int[100]; //这一步是必不可少的,这一步是为了初始化并查集的数组,初始状态下每个结点的父结点就是他本身。 for(int i =0 ;...












