![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
azaxx
这个作者很懒,什么都没留下…
展开
-
背包问题总结
#背包问题总结01背包01背包就是m大小的背包中,有n个价值为w,大小为v的物品,选取物品装入背包得到最大值。如果f数组初始化为0,那么f[n][m]就为最大值,如果只有f[0][0]初始化为0,那么只有正好装入的重量才是最大值。朴素解法import java.util.*;class Main { static int n, m; static final int N = 1010; static int[][] f = new int[N][N]; stat原创 2022-04-11 19:27:49 · 127 阅读 · 0 评论 -
图中点的层次-图宽搜
// 宽搜可以用来解决最小路径问题import java.util.*;class Main{ // 图的初始化操作 static int N = 100010; static int[] h = new int[N], e = new int[N], ne = new int[N]; static int idx = 0; static int n; static int[] d = new int[N]; // 图的插入操作 static voi原创 2022-03-30 23:15:47 · 79 阅读 · 0 评论 -
树的重心-图的深搜
import java.util.*;class Main { /* 采用邻接表的方法去构件图 */ // 由于是无向图,所以边的个数会是2N static int N = 100010, M = N * 2, idx, n // h代表是头结点的数组,存的是邻接表的链表头指向的那个结点; static int[] h = new int[N]; // 存放的是邻接表对应的图的结点 static int[] e = new int[M]; //原创 2022-03-30 23:09:37 · 78 阅读 · 0 评论 -
LC140. 单词拆分 II
总体思路采用的是字典树+回溯class Solution { static class Trie { // 这里特别搞笑,居然可以缩小到20;本来设置的是100010的,一看好多人比我快,不行,调试一下哈哈哈 int[][] son = new int[20][26]; int[] cnt = new int[20]; int idx = 0; // insert操作 public void i.原创 2022-03-28 23:16:08 · 80 阅读 · 0 评论 -
字符串哈希
对应AcWing841import java.util.*;class Main { // 定义一个进制:131 或者13131,这里采用了long,是因为long会自动处理溢出。本来是需要采用膜2^64来处理冲突的 static final int N = 100010, P = 131; static long[] h = new long[N]; static long[] p = new long[N]; // 此处相当于移位 // A原创 2022-03-28 16:33:27 · 55 阅读 · 0 评论 -
Java堆排序实现+封装
Java堆排序实现+封装对应AcWing838import java.util.*;class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); Heap heap = new Heap();原创 2022-03-28 15:38:47 · 787 阅读 · 0 评论