上一页 1 ··· 3 4 5 6 7 8 9 10 下一页
摘要: 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修远 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 思路:维护一个最多有K个0存在的滑动窗口,用窗口中的元素数量(该窗口中所有0都可以变成1)更新答案。 因此,统计【0,i】区间内0的数量,到下标i的映射。i作为滑动窗口的右端点, 通过以下方式计算出滑动窗口的左端点,进而得到窗口内元素的数量(right - left + 1, 闭区间[left, r 阅读全文
posted @ 2020-06-24 13:19 li修远 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 01背包问题 题意,每件商品只能买一次,至少需要买多少钱的东西才能满X元钱。 如果我们知道了背包的容量大小,也就是我们有一共多少钱,目标就变成了,我们尽可能的买最多的东西,也就是使得总的价值最大。 我们依次枚举我们钱的大小(背包大小),求出背包大小固定的情况下,最大价值。 f[i][j]表示前i个商 阅读全文
posted @ 2020-06-24 10:48 li修远 阅读(271) 评论(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修远 阅读(135) 评论(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修远 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 1. 前缀和与差分及其应用 有两个数组A和B。 前缀和数组A: \(a_1 , a_2, a_3..., a_n\) 差分数组B: \(b_1, b_2, b_3, ..., b_n\) 数组A和B的关系如下: (1)前缀和数组A: $a_1 , a_2, a_3..., a_n$又等于 \(b_1 阅读全文
posted @ 2020-06-23 20:56 li修远 阅读(164) 评论(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修远 阅读(236) 评论(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修远 阅读(158) 评论(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修远 阅读(119) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 下一页