随笔分类 - DP
摘要:原题链接 这是一道基础的树形DP 题意: 给你一棵树,让你找两条不相交的路径,使得它们长度的乘积最大 思路:由于N只有$200$,因此直接枚举删掉哪一条边,然后分别求两棵树的直径$d1, d2$,然后对$d1 * d2取max$即可 代码如下 int h[N], e[M], ne[M], idx;
阅读全文
摘要:原题链接 这题自己sb,后面s数组没有加够,出现了空值,调了老半天,我是sb。 题意: 给你n个结点,权值1~n,问你最多能组成多少棵深度不小于 k 的二叉搜索树。 思路:大的树是由小的树构成的,因此可以递推(DP)。详情见代码,有注释。 代码如下 int n, h; ull ans; ull f[
阅读全文
摘要:原题链接 这题自己写状压是没问题,但是细节没把握好,wa了,然后参考了大佬的博客. 据说这题还可以暴搜实现,懒得想了(说不定剪枝啥的不好想)。 题意: 一个女孩整理箱子,箱子的位置不可以改变,告诉你箱子和每个行李的位置,她一次可以拿两个或者是一个行李,女孩移动时间花费是她移动距离的平方,求最小花费时
阅读全文
摘要:原题链接 这题对我这个菜鸡来说,实在是太难了,捣鼓了半天才看懂大佬的代码。 题意:给你一个环,环上每个点都有一个权值$h_i$让你求出有多少数对$(i, j)$,存在一条从$i$到$j$的弧满足弧上的所有数都小于等于端点$h_i和h_j$. 思路:首先遇到的就是对环的操作,很显然直接在环上操作是不那
阅读全文
摘要:原题链接 题意:给你n个二元组和起始条件,求其最大二维上升子序列,并输出选择编号。 思路:按照一个维度排序,然后DP即可,注意细节。 代码如下 int n, w, h; struct node{ int w, h, id; bool operator < (const node &t) const
阅读全文
摘要:原题链接 这题要特判矩阵里有0的情况,我就没特判,一直TLE(自己傻逼) 题意:给你一个矩阵,里面都是非负数,现在让你从$(1, 1)\(走到\)(n, n)$, 并且把路径上的所有数乘起来,问你能得到的数末尾最少有多少个0。 思路:把路径上的每个数含有因子2和5的个数求出来(因为2和5才能凑出0)
阅读全文

浙公网安备 33010602011771号