随笔分类 - dp
摘要:F - Vasya and Array dp[ i ][ j ] 表示用了前 i 个数字并且最后一个数字是 j 的方案数。 dp[ i ][ j ] = sumdp [i - 1 ][ j ], 这样的话会有不合法的方案算进去,而且不合法的方案只有 i - len + 1 到 i 这一段相同才会 出
阅读全文
摘要:B - Free Market 思路:这个题怎么说呢,迷惑性很大,题目里说了交换了两个集合的时候如果有相同元素不能交换,感觉如果没 这句话能很快写出来, 其实当交换的两个集合有重复元素的时候只要交换那些不重复的就好啦,这样就相当于能 交换两个有交的集合,那么对于两个集合S1, S2我们不需要去考虑有
阅读全文
摘要:D - Bags and Coins 思路:我们可以这样构造,最大的那个肯定是作为以一个树根,所以我们只要找到一个序列a1 + a2 + a3 .... + ak 并且ak为 所有点中最大的那个,那么我们a1, a2, a3..., ak-1 作为单独的点,其他没有涉及到的点套在ak的里面。 现在问
阅读全文
摘要:B - Byteland Trip 题目大意:给你一个由'<' 和 '>'组成的串, 如果在'<' 只能前往编号比它小的任意点, 反之只能前往比它大的任意点,问你能遍历所有点 并且每个点只走一次终点在各个位置的方案数。 思路:感觉这种右能从左边跑到右边又跑回来的dp很难搞,如果我们确定一个终点, 如
阅读全文
摘要:E - Preorder Test 思路:想到二分答案了之后就不难啦, 对于每个答案用树形dp取check, 如果二分的值是val, dp[ i ]表示 i 这棵子树答案不低于val的可以访问的 最多节点, 第二次dfs求出以每个点为根的答案。
阅读全文
摘要:E - Intellectual Inquiry 思路:我自己YY了一个算本质不同子序列的方法, 发现和网上都不一样。 我们从每个点出发向其后面第一个a, b, c, d ...连一条边,那么总的不同子序列就是从0号点出发能走出多少条 不同点的路径。 dp[ i ]表示是到 i 这个点的不同路径数,
阅读全文
摘要:F - Group Projects 题目大意:给你n个物品, 每个物品有个权值ai, 把它们分成若干组, 总消耗为每组里的最大值减最小值之和。 问你一共有多少种分组方法。 思路:感觉刚看到的时候的想法是先排好序, dp[ i ][ j ][ k ]表示已经划分了 i 个, 并且分成了 j 组, 目
阅读全文
摘要:思路:dp[ i ][ 0 ]表示第一个是山谷的方案,dp[ i ][ 1 ]表示第一个是山峰的方案, 我们算dp[ x ][ state ]的时候枚举 x 的位置 x 肯定是山峰, 然后就用组合数算方案就好啦。 卡空间 模数是1e9 不是 109 巨坑。
阅读全文
摘要:思路:如果只有一棵树这个问题很好解决,dp一次,然后再dfs一次往下压求答案就好啦,带环的话,考虑到环上的点不是 很多,可以暴力处理出环上的信息,然后最后一次dfs往下压求答案就好啦。细节比较多。
阅读全文
摘要:思路:二分之后用dp去check就好啦。
阅读全文
摘要:思路:这个贪心排顺序我居然没看出来。 吃饭时间长的在前面, 用反证法很容易得出。 剩下的就是瞎dp啦。
阅读全文
摘要:最普通dp要4维,因为肯定有一个在上一个的位置,所以可以变为3维,然后滚动数组优化一下。
阅读全文
摘要:F - Uniformly Branched Trees
阅读全文
摘要:E - Goods transportation 思路:这个最大流-> 最小割->dp好巧妙哦。
阅读全文
摘要:C - Sonya and Problem Wihtout a Legend 思路:感觉没有做过这种套路题完全不会啊。。 把严格单调递增转换成非严格单调递增,所有可能出现的数字就变成了原数组出现过的数字。
阅读全文
摘要:E - Demiurges Play Again 感觉这种类型的dp以前没遇到过。。。 不是很好想。。 dp[u] 表示的是以u为子树进行游戏得到的值是第几大的。
阅读全文
摘要:C - Remembering Strings 思路:最关键的一点是字符的个数比串的个数多。 然后就能状压啦。
阅读全文
摘要:D - Road Improvemen 思路:0没有逆元!!!! 不能直接除,要求前缀积和后缀积!!!
阅读全文
摘要:F - New Year Shopping 对于一种特殊的不可逆的dp的拆分方法。。 也可以用分治写哒。
阅读全文
摘要:思路:很容易写出dp方程,很容易看出能用单调队列优化。。
阅读全文

浙公网安备 33010602011771号