上一页 1 ··· 52 53 54 55 56 57 58 59 60 ··· 75 下一页
摘要: 原题链接 考察:树形dp 1072. 树的最长路径 该题的延伸 思路: 上题求的是父节点往下的最大值+次大值.这道题求的是点与点的最大距离.这个可以是该点往下的最长距离,也可以是该点往上的最长距离.假设某点为根,往下的最长距离上一题已经求出.往上的最大距离是:到父节点的距离+max(父节点往下的最大 阅读全文
posted @ 2021-02-15 21:22 acmloser 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:树形dp 思路: 从定义出发我们需要枚举所有路径,但直接枚举两个点直接的路径会超时,所以要分类集合枚举.已知树的路径一定会经过某个点,那么我们以点来分类集合.以路径的最高点来分类,经过这个点的最长路径 = 经过此点最长边+经过此点次长边.因此状态转移方程 f[u] = f[v1] + 阅读全文
posted @ 2021-02-15 16:40 acmloser 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:状压dp 本蒟蒻是完全没思路...基本照抄大佬代码 照搬大佬的思路: 首先要知道包围两个点的最小矩形面积是两个点刚好在矩形的对角线上.根据这个我们构造n*(n-1)/2个矩形.对于每个点我们检查矩阵是否将它包含在内部,如果包含就记录下来.这样每个矩形都有它包含的点集.根据这个dp方程 阅读全文
posted @ 2021-02-15 01:08 acmloser 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:状压dp POJ 3254的延伸题 思路: 讲牛的需求看成看成肥沃的土地,也就是把谷仓看成一个矩阵.与牛的需求相符的位置可以养牛.这样就变成了POJ 3254差不多的题.f[i,j]表示前i头牛谷仓的养殖情况.状态转移方程是f[i][j] += f[i-1][k]. 这道题直接枚举i 阅读全文
posted @ 2021-02-14 22:12 acmloser 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:状压dp 思路: 考虑到计算三角形,我们需要知道落脚点i和前一个落脚点j,所以需要三维数组.根据状态转移方程f[i][j][k] = f[i-{j}][k][t]+score很容易求出最大的权值.但是比较难想到怎么计算路径数目(对本蒟蒻而言).方法是再声明一个记录当前路径最大值的方案 阅读全文
posted @ 2021-02-14 18:28 acmloser 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:状压dp 本题是731. 毕业旅行问题的延伸 思路: 与上面那道题不同的是每个点至少走一次,而不是只能走一次.普通的dp求出的是0到i点的最短距离(且每个点都经过一次),但这里我们还需要回程,也就是还需要求出i到0点的最短距离.我们手操可以发现ans=每个点都经过一次的最短距离+回程 阅读全文
posted @ 2021-02-14 13:07 acmloser 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:状压dp 这个是AcWing 1064. 小国王那道题的扩展 思路: 这道题与小国王的区别在于前两行影响当前行.并且这道题我们求的是炮的最大数量.有几点必须说明: 不能效仿小国王开dp数组f[i,i行状态],如果这样写状态转移方程就是f[i,j] = f[i-2,k]+cnt[j]+ 阅读全文
posted @ 2021-02-14 02:13 acmloser 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:状态压缩dp 这道题是 91. 最短Hamilton路径 的变种 思路: 很容易在优先级问题上陷入死循环(仅限本蒟蒻),实际上一开始做的时候,第一个汉堡要求食材必须是0,等同于从0点出发.设置f[0]=0,其他都=-99999999这样就可以避免样例给的死循环问题. 以i状态更新可以 阅读全文
posted @ 2021-02-13 19:20 acmloser 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:状压dp 这道题的扩展题 91. 最短Hamilton路径 思路: 首先要处理这几点: 可以以任意点为出发点,也就是说初始化f[i点为1,其余点为0的状态][i] = 0. 预处理10位以内的3进制数. 设定f[i][j]为最后的落脚点为i,此时的状态为j.集合划分为倒数第二个点为k 阅读全文
posted @ 2021-02-13 16:20 acmloser 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:状压dp 思路: 预处理连续1的状态,再处理能放在第i行的状态.递推时枚举pos[i]和pos[i-1]的状态即可. 注意: 位运算==的优先级高于& 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 # 阅读全文
posted @ 2021-02-13 13:05 acmloser 阅读(35) 评论(0) 推荐(0) 编辑
上一页 1 ··· 52 53 54 55 56 57 58 59 60 ··· 75 下一页