自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 试除法分解质因数

试除法分解质因数大体思路:从2这个质因数开始枚举,将n中所有的2剔除,随后判断质因数3…因为4这种数字被2操作过所以不会再重复出现!所以不必担心枚举出错!package 素数;import java.util.Scanner;public class 试除法分解质因数 { static int p[]=new int[20];//p[i]表示第i大的质因数是多少 static int c[]=new int[40];//c[i]表示第i大的质因数的个数有多少个 public stat

2022-04-08 16:44:46 298

原创 埃式筛__

埃式筛通过打表的方式来统计素数,打好表后O(1)的复杂度就可以判断一个数,是否是一个素数!package 素数;import java.util.ArrayList;import java.util.Scanner;public class 埃式筛 { static int n; static int N=10000010;//空间为10M只能处理10^7的数据 static int st[]=new int[N]; public static void main(String

2022-04-08 16:44:13 119

原创 匈牙利算法

匈牙利算法简称NTR算法(滑稽=_=),是用来查找一个二分图中,最多能有多少相互匹配的边的数量(相互匹配的边,即该边和其他任何边都不共用同一个节点。)算法设计import java.util.Arrays;import java.util.Scanner;public class Main { static int n1,n2,m; static int N=510,M=100010; static int h[]=new int[N],e[]=new int[M],ne[]=new i

2022-04-08 16:39:00 354

原创 染色法判定二分图

二分图定义:二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。性质:二分图当且仅当图中不含奇数环将所有点分成两个集合,使得所有边只出现在集合之间,就是二分图二分图:一定不含有奇数环,可能包含长度为偶数的环, 不一定是连通图根据以上性质我们设计染色法确定二分图的思路是:将图中的每个点进行标记,

2022-04-08 16:37:59 243

原创 拓扑排序_

拓扑排序一个拓扑序列中,从入读为0的点开始遍历,得到的一个序列一定是从前指向后的,即有向无环图得到的序列若存在从后指向前的序列,则一定不满足拓扑序列,也一定不是有向无环图。步骤:1.将所有入度为0的点加入队列中2.宽搜队列,每次遍历下一个点时,删除该点与上一个节点的连接,同时让该点的入读–,当该点的入读为0时入队即可3.遍历结束后查看是否所有点都进入过队列,若进入过则该图存在拓扑序列,该拓扑序列即为队列中的顺序队列。 static boolean topsort() { int z=0

2022-04-08 16:36:46 55

原创 优先队列_

优先队列import java.util.PriorityQueue;public class 优先队列 { public static void main(String[] args) { //默认为最小堆 PriorityQueue<Integer> pq=new PriorityQueue<>(); /*如果是优先队列中存放的是类 * 那么使用comparator进行类比较 * PriorityQueue<PII>heap=ne

2022-04-08 16:34:00 52

原创 线段树(未完成简版)

线段树单点修改区间查询核心在线段树单点修改,区间查询的过程中,除了push_up外,其余三个操作都是以二分为主要思想,通过mid=l+r>>1;进而自顶向下进行建树,修改,查询。push_up操作static void push_up(int p) { tree[p]=Math.max(tree[p*2], tree[p*2+1]);}build建树 static void build(int p,int l,int r) { if(l==r) { tr

2022-04-08 16:30:47 38

原创 归并排序的思想

归并排序的思想归并排序的核心思想是分治,我们需要将一个完整的数组先进行拆分,随后合并,合并的过程其实就是交换索引内容的过程,该过程中可以找到很多逆序对,在解决逆序对问题时可以考虑归并排序。public class 归并排序{ static int N=10001; static int n; static int num[]=new int[N]; static int b[]=new int[N]; static void Merge(int l,int

2022-04-08 16:27:42 788

原创 差分算法_

差分类似于数学中的求导和积分,差分可以看成前缀和的逆运算。差分数组:首先给定一个原数组a:a[1], a[2], a[3],,,,,, a[n];然后我们构造一个数组b : b[1] ,b[2] , b[3],,,,,, b[i];使得 a[i] = b[1] + b[2 ]+ b[3] +,,,,,, + b[i]也就是说,a数组是b数组的前缀和数组,反过来我们把b数组叫做a数组的差分数组。换句话说,每一个a[i]都是b数组中从头开始的一段区间和。考虑如何构造差分b数组?最为直

2022-04-08 16:26:00 185

原创 java快读快写

io快读快写//记得导入io包import java.io.*;public class Practice { //使用快读快写时,记得抛出IOException异常 public static void main(String[] args) throws IOException{ //读取字符串 BufferedReader res=new BufferedReader(new InputStreamReader(System.in)); //读取整数型数字 StreamTo

2022-04-08 16:18:04 229

原创 stl大全

什么是STL?大佬:为什么C++比C更受人欢迎呢?除了C++ 的编译令人感到更舒适,C++的标准模板库(STL)也占了很重要的原因。当你还在用手手写快排、手写二叉堆,挑了半天挑不出毛病的时候,C++党一手STL轻松AC,想不嫉妒都难。萌新:STL太酷了吧,快跟我讲讲具体是什么玩意吧!大佬:STL(Standard Template Library,标准模板库),是惠普实验室开发的一系列软件的统称。现在主要出现在 c++中,但是在引入 c++之前该技术已经存在很长时间了。STL 从广义上分为: 容器(c

2022-03-11 16:32:33 2007 1

原创 并查集(通俗易懂)

并查集这玩意能干嘛??说它是高级数据结构,有点过又不过,它真正做的事情是1.合并集合2.查询新的元素是否在某个集合中根据我最近做题的心得:这玩意处理重复元素问题的时候可是一把好手,当我们在处理问题时能想到用hash去解决的,不妨也去想想并查集,选种更方便的岂不美哉~但是更为标准的是,它是图论问题不可或缺的小帮手:什么判断连通性、最小生成树 Kruskal 算法、最近公共祖先(Least Common Ancestors, LCA)等,都需要并查集,所以得认真看认真学~操作思路:简单来说

2022-03-10 21:00:30 1863

原创 高精度算法(小朋友也能看懂的= =)

小学生也能看懂的高精度算法!

2022-02-21 13:06:24 427

原创 (更新完善版)堆优化dijkstra与spfa算法解决无负权回路单源最短路问题

启动:2022.2.16总结系统学习最短路算法之无负权回路单源最短路算法:有负权回路(有回路,且回路长度总和为负数(回路之间各个点之间边的和是一个负数,那么回路转下去为负无穷))最短路不一定存在:总体来说解决无负权回路单源最短路算法常用基础算法有1.dijkstra()2.spfa()两种算法其中dijkstra使用堆优化版本spfa是贝尔曼福特算法队列优化的结果接下来来搞这俩算法!堆优化版本dijkstra()–>java语言版时间复杂度O(mlogn) (n是点个数

2022-02-17 08:49:25 528

原创 java中对类进行排序

java类排序(蓝桥杯必学)我们知道c++中有时候需要对结构体进行一些排序可以直接调用sort(数组,排序方法);而java中有时候需要对类进行指定的排序~前导知识:数组:(不论是int,char,String类型的数组)都调用 Arrays . sort() 排序即可结构体: 首先要将它存放在集合中,在对其进行排序,调用 Collections . sort()排序,此时需要重新构造排序方法(但是例如TreeMap , TreeSet , PriorityQueue,等自带排序的集合,需

2022-01-25 19:26:35 2392

原创 判断是否为完全二叉树

判断一棵树是否为完全二叉树!

2022-01-23 16:33:22 2511

原创 判断是否为搜索树

判断一棵树是否为搜索树!

2022-01-23 16:32:10 270

原创 重建二叉树

根据前序,中序遍历结果重建二叉树!

2022-01-18 17:15:43 383

原创 Java List集合与Set集合

Java List集合与Set集合***目录***Java List集合与Set集合前言一.List接口下的集合:存放数据可以重复,并且有顺序(1)ArrayList:底层是Object数组,增删很慢,查询很快(2)LinkedList集合:底层是链表,增删很快,但查询很慢(具体的方法同,ArrayList);二.Set接口下的集合:存放数据无序且不可重复(1)HashSet:底层是哈希表。无序不可重复(2)TreeSet:底层是二叉树。有序但是不可重复(对于实现了Comparable,Comparato

2021-04-02 16:42:41 413 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除