Processing math: 100%

06 2020 档案

摘要:动态规划 import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] 阅读全文
posted @ 2020-06-28 21:03 li修远 阅读(131) 评论(0) 推荐(0) 编辑
摘要:字符串数组的排序,重写comparator 方法compare()。 import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in 阅读全文
posted @ 2020-06-28 20:17 li修远 阅读(101) 评论(0) 推荐(0) 编辑
摘要:import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n =sc.nextInt(); List<Intege 阅读全文
posted @ 2020-06-24 14:09 li修远 阅读(130) 评论(0) 推荐(0) 编辑
摘要:思路:维护一个最多有K个0存在的滑动窗口,用窗口中的元素数量(该窗口中所有0都可以变成1)更新答案。 因此,统计【0,i】区间内0的数量,到下标i的映射。i作为滑动窗口的右端点, 通过以下方式计算出滑动窗口的左端点,进而得到窗口内元素的数量(right - left + 1, 闭区间[left, r 阅读全文
posted @ 2020-06-24 13:19 li修远 阅读(166) 评论(0) 推荐(0) 编辑
摘要:01背包问题 题意,每件商品只能买一次,至少需要买多少钱的东西才能满X元钱。 如果我们知道了背包的容量大小,也就是我们有一共多少钱,目标就变成了,我们尽可能的买最多的东西,也就是使得总的价值最大。 我们依次枚举我们钱的大小(背包大小),求出背包大小固定的情况下,最大价值。 f[i][j]表示前i个商 阅读全文
posted @ 2020-06-24 10:48 li修远 阅读(275) 评论(0) 推荐(0) 编辑
摘要:一、分治法 时间复杂度:O(NlogN) 通过70%样例,超时 import java.util.*; public class Main { static int res = 0; static void solution(int[] a, int i, int j, int x) { if(i 阅读全文
posted @ 2020-06-23 23:20 li修远 阅读(138) 评论(0) 推荐(0) 编辑
摘要:典型01背包问题 import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); i 阅读全文
posted @ 2020-06-23 22:00 li修远 阅读(148) 评论(0) 推荐(0) 编辑
摘要:1. 前缀和与差分及其应用 有两个数组A和B。 前缀和数组A: a1,a2,a3...,an 差分数组B: b1,b2,b3,...,bn 数组A和B的关系如下: (1)前缀和数组A: a1,a2,a3...,an又等于 \(b_1 阅读全文
posted @ 2020-06-23 20:56 li修远 阅读(167) 评论(0) 推荐(0) 编辑
摘要:排序+深搜+剪枝 import java.util.*; public class Main { static int dfs(int[] a, int n, int u, long sum, long pi) { int res = 0; for(int i=u; i < n; i++) { if 阅读全文
posted @ 2020-06-23 13:08 li修远 阅读(121) 评论(0) 推荐(0) 编辑
摘要:动态规划 f[i][j] 表示数列的长度为i, 并且以数j结尾的合法序列的数量。 f[i][j] += f[i-1][l], 其中l,j满足合法序列的要求 //暴力法:时间:O(N*K*K), 空间:O(NK) //40%通过 import java.util.*; public class Mai 阅读全文
posted @ 2020-06-22 12:36 li修远 阅读(241) 评论(0) 推荐(0) 编辑
摘要:poj 1088 滑雪 记忆化搜索 import java.util.*; public class Main{ static int n, m; static int[] dx, dy; static int[][] dp, a; static int f(int i, int j) { if(d 阅读全文
posted @ 2020-06-20 13:42 li修远 阅读(160) 评论(0) 推荐(0) 编辑
摘要:import java.util.*; public class Main{ static long comb(int n, int m, int k) { long res = 1L; for(int i=1; i <= m; i++) { res = res*(n-m+i)/i; if(res 阅读全文
posted @ 2020-06-17 16:56 li修远 阅读(121) 评论(0) 推荐(0) 编辑
摘要:二分查找 x+x2=x(x+1)=h 二分查找求解。 x下界为0, 上界不好找(如果设为h, java中long类型溢出)。我们转化问题为查找x+1,下界为1, 上界为 h 。 import java.util.*; public clas 阅读全文
posted @ 2020-06-16 21:36 li修远 阅读(117) 评论(0) 推荐(0) 编辑
摘要:宽度优先遍历,可访问位置.记录到出发点的最近距离。 深度优先遍历不好做。 import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System. 阅读全文
posted @ 2020-06-16 21:34 li修远 阅读(118) 评论(0) 推荐(0) 编辑
摘要:篮球队, 网易笔试题 转化成01背包问题 设 目前有背包,共有n个商品,依次决定是否放入商品i,使得商品总价值达到指定指定数目。 定义,状态 f[i][j]表示前i个商品中,使背包中总价值为j的放置方案数量。 f[i][j]=f[i-1][j]+f[i-1][j-w[i]] if j >= w[i] 阅读全文
posted @ 2020-06-12 21:56 li修远 阅读(158) 评论(0) 推荐(0) 编辑
摘要:1 国庆旅行 import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int 阅读全文
posted @ 2020-06-10 13:52 li修远 阅读(105) 评论(0) 推荐(0) 编辑
摘要:List<Integer>[] tree保存整颗树。 Map<Integer, Map<Integer, Character>> edge保存边上的信息。 Map<Long, Integer> map保存path字符串的hashcode及val和。 char c = sc.next().charAt 阅读全文
posted @ 2020-06-04 13:26 li修远 阅读(143) 评论(0) 推荐(0) 编辑
摘要:输入要使用sc.next(), 如果使用sc.nextLine().split(" ") 将会超时!!! import java.util.*; public class Main { static long[] p, h; static long get(int l, int r) { /*求字符 阅读全文
posted @ 2020-06-03 12:43 li修远 阅读(177) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示