题目链接 91. 解码方法 题目分析 很明显的动态规划题,但是我在想状态转移方程的时候脑抽筋了,非得在dp[i-2]和dp[i-1]中取一个最大值然后加1,导致整个题没办法快速的解决。 其实这个题正解应该是这样的: 对于每一个字符,我们都应该判断单独一个字符和两个字符构成数字的情况 如果单独一个字符 ...
分类:
其他好文 时间:
2020-07-25 09:41:22
阅读次数:
56
1 class Solution { 2 public boolean divisorGame(int N) { 3 boolean[] dp = new boolean[N + 3]; //初始化DP 4 dp[1] = false; //数字为1时失败 5 dp[2] = true; //数字为 ...
分类:
其他好文 时间:
2020-07-24 23:43:32
阅读次数:
80
题目大意: 给出个点,n为偶数,询问两个完全没有交集的匹配q和p。 一方面使得n个点两两互相匹配,一方面使得匹配的权值和最小 分析: 因为n是偶数,所以可以考虑将n个数分配到不同的长度为偶数的环中,对于排列q和排列p,只需要在偶环中交换一下位置就好。 但这个偶环的长度必须要大于2,因为如果长度为2, ...
分类:
其他好文 时间:
2020-07-24 21:58:55
阅读次数:
72
dp连续子数组的最大问题求解: ##思路: ####1.dp[i] 表示以第i个元素为末尾元素的子序列最大和 ####2.只有一个元素时,该元素即最大 ####3.当dp[i-1]为负数时,对第i个元素产生负影响;为正数时,比较加上第i个元素值是否变大,dp[i] 为nums[i]与dp[i-1]+ ...
分类:
编程语言 时间:
2020-07-24 21:45:11
阅读次数:
64
[编程题] lc:最小路径和 题目描述 输入输出 思路 原地动态 规划 Java代码 class Solution { //方法:原地dp的动态规划 public int minPathSum(int[][] grid) { for(int i=0;i<grid.length;i++){ for(i ...
分类:
其他好文 时间:
2020-07-24 09:35:13
阅读次数:
66
搜索依然爆炸的烂,继续加油吧。 题解:按照 h 排序的大根堆,每次寻找四周 h 小的接上dp串。 #include <iostream> #include <queue> #include <algorithm> using namespace std; /* * time: 2020.7.23 * ...
分类:
其他好文 时间:
2020-07-23 23:26:22
阅读次数:
94
三色树 给出一个N个节点的无根树,每条边有非负边权,每个节点有三种颜色:黑,白,灰。一个合法的无根树满足:树中不含有黑色结点或者含有至多一个白色节点。现在希望你通过割掉几条树边,使得形成的若干树合法,并最小化割去树边权值的和。 第一行一个正整数N,表示树的节点个数。第二行N个整数Ai,表示i号节点的 ...
分类:
其他好文 时间:
2020-07-23 23:08:02
阅读次数:
123
64. 最小路径和 /** * @author realzhaijiayu on 2020/7/23 * @project leetcode */ /* 典型的动态规划问题 二维的 dp[i][j] = min(dp[i-1][j], dp[i][j-1]) + grid[i][j]; 一维的 dp ...
分类:
其他好文 时间:
2020-07-23 23:00:16
阅读次数:
66
本题题面有误,所求非递增序列,而是单调不下降序列,如{2,3,3}是合法的 输入格式 输出格式 样例输入 2 6 3 1 4 5 8 7 6 3 2 1 6 5 4 样例输出 Yes! No!数据范围与提示 思路:设f[i][j]为第一个序列以a[i]结尾,第二个序列长度为j且最后一个数为f[i][ ...
分类:
其他好文 时间:
2020-07-23 22:59:31
阅读次数:
81
四边形不等式: 考虑形如$dp(i,j)=min\{dp(i,k)+dp(k,j)+w(i,j)\}$的dp。(若为max则把下文大小关系取反即可) 定义:若二元函数w满足$\forall a<b\leq c<d,w(a,c)+w(b,d)\leq w(b,c)+w(a,d)$,则称其满足四边形不等 ...
分类:
其他好文 时间:
2020-07-23 19:00:41
阅读次数:
96