![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
dp
- Passerby ゛
这个作者很懒,什么都没留下…
展开
-
codefoces 1072 D. Minimum path(dp+bfs)
D. Minimum pathtime limit per test1.5 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given a matrix of size n×nn×n filled with lowercase English letters....原创 2018-12-07 21:56:39 · 255 阅读 · 0 评论 -
codeforce E. Tree Painting(树形dp||换根dp)
https://codeforces.com/contest/1187/problem/E题意:给出一棵树,一开始每个节点都为白点,每次可以选择一个点变为黑点,获得分数等于该白点所有相连白点的数量,问能得到的最大分数为多少思路:此题为经点的树形换根dp。换根dp大体思路:1.首先固定一个节点(一般取根节点)2.考虑以该节点计算答案需要知道哪些条件(一般为子树的信息)3.将根节点传递给子...原创 2019-08-14 23:15:38 · 270 阅读 · 0 评论 -
codeforces 1029 E. Tree with Small Distances(树形dp||贪心)
http://codeforces.com/contest/1029/problem/E题意:给出以1位根节点有n个顶点,n-1条边的树,现在要添加边满足,1到所有顶点距离小于2思路:考虑最优的的添加一定是直接与1节点相连,那么如何让添加一条边影响更多的点呢,考虑倒着做,如果叶子节点距离大于2,最优添加方式一定是将其父节点连接到1上,一定比直接添加到叶子节点上影响的点更多,那么只需要树形dp,...原创 2019-08-18 20:34:05 · 264 阅读 · 0 评论 -
codeforces 895 C. Square Subsets(状压dp)
http://codeforces.com/contest/895/problem/C题意:给出n个数字,问有多少个非空子集的乘积为完全平方数看见ai范围很小就想着应该围绕ai来做,一直在思考组合数怎么解,发现情况太多太难考虑完全,看题解才想起有状压dp这个东西解决状态数量较少的问题 - _-!!!思路:考虑一个数字为质因子分解后,如果其为完全平方数,那么每个质因子的次方和肯定为偶数,小于...原创 2019-07-29 20:12:11 · 113 阅读 · 0 评论 -
codeforces E. Sergey and Subway(边权和变形||dfs)
http://codeforces.com/contest/1060/problem/E题意:给出一棵树,现对一个节点相连的两个节点再连一条边,问所有点对的距离和自己做的时候还一直想着树上dp瞎搞,搞了半天弄不出来,发现这道题思路还是比较巧妙思路:先把问题转化一下,求树上所有点对的边距离和,那么针对每一条边他的贡献就是 一端点数*另一端点数 这是所有的要使用她的点对。 那么问题就被...原创 2019-07-10 20:43:58 · 151 阅读 · 0 评论 -
codeforces 1025 D. Recovering BST(区间dp)
http://codeforces.com/problemset/problem/1025/D题目大意:给出n个数字,问能不能使用这些数字构成binary search tree,相邻节点gcd>1;思路:这道题要用到区间dp知识的知识博客:https://blog.csdn.net/my_sunshine26/article/details/77141398区间dp中,把断点k当...原创 2019-07-10 20:26:52 · 134 阅读 · 0 评论 -
无尽递增(dp)
2119: 无尽递增时间限制: 1 Sec 内存限制: 128 MB提交: 71 解决: 11[提交] [状态] [讨论版] [命题人:admin]题目描述有一个只包含1和2的序列,试翻转一个区间,使得结果中非递减子序列最长。输出翻转后数列中非递减子序列的最长长度。输入第一行为数据组数T,每组数据包含两行,第一行为序列的长度,第二行为n个数,表示数列中的数。(T <=6 &...原创 2019-05-26 20:07:12 · 266 阅读 · 0 评论 -
codeforces 1152 D. Neko and Aki's Prank(最大匹配||dp)
http://codeforces.com/contest/1152/problem/D题意:给出一个n,n个括号组成过程的字典树,选出最多的边数,使得选的所有边无共同顶点。自己没想出来,大概知道转移方程,但不知道怎么取边最优…思路:从叶子节点开始取,每取一条边,就把该叶子节点与父节点删除,然后一直取到最上边即为最优情况。因为题目的特殊性,每个叶子节点深度相同,我们只需要取每两层的总节点数的...原创 2019-04-27 23:58:28 · 246 阅读 · 0 评论 -
codeforces 1153 D. Serval and Rooted Tree(树形DP)
http://codeforces.com/contest/1153/problem/D题意:给出一棵树,1位根节点,有k个叶子节点,叶子节点标号1-k(不重复),每个节点有两种操作 1 取子节点最大值,0 取子节点最小值,问根节点最大为多少。自己做的时候想到dp这个方向,但是具体还是不知道怎么操作,看了题解还是自闭了好久,不知道自己是英语不好还是语文不好…我的思考:题目要求最大的根结点的...原创 2019-04-14 23:28:29 · 159 阅读 · 0 评论 -
codeforces 1114 D. Flood Fill(dp)
题目:https://codeforces.com/contest/1114/problem/D题意:给出n个数字,从任意一个数字开始,将其变成左右相连的数字,最后所有数字相同,问最少变多少次思路:明显动态规划,首先定义状态dp[i][j][k] ,因为转移过程中会有2种情况1.使区间中的数与a[l]相同 k=02.使区间中的数与a[r]相同 k=1那么转移的时候两种转移共同进行,...原创 2019-03-11 23:11:52 · 137 阅读 · 0 评论 -
codeforces 1132 F. Clear the String(dp)
题目:https://codeforces.com/contest/1132/problem/F题意:给出一个长度为n的字符串,每次可以删除一个字母相同的字串,问最少需要删多少次。思路:动态规划,首先考虑定义状态dp[i][j]为删除下标 i~j 字母的最少次数,由于相同字母可以一同删除,所以我们更新dp值应该从最小的区间更新到大的区间,当a[k]=a[l]时 可以取dp[l][r]=...原创 2019-03-11 22:56:54 · 194 阅读 · 0 评论 -
codeforces 1101 D. GCD Counting(树上dp)
题目:http://codeforces.com/contest/1101/problem/D题意:给出一颗节点为n的树,每个节点有数字ai,现在要求找到两个点x,y 并且在满足这条路径上相邻数的gcd>1的情况下dist(x,y)最大。思路:这是一道明显的树上动态规划问题,首先预处理将每个数的因子存入fac中,定义dp[i][j] 为第x个数因子为i的最大个数,先用dfs处理出来...原创 2019-03-05 22:34:41 · 199 阅读 · 0 评论 -
HDU 1074 Doing Homework(状压dp)
题意:给你n个作业的名称,完成时间和截止时间,问以怎样的顺序完成作用超出时间最少。思路:这道题要用到状压dp,首先要明白什么情况会用到状压dp,当给出n数量很小时,并且每个都存在不同状况时会用到状压dp,用二进制字符串中0代表不选,1代表选 那么总共就有2^n种情况,此时我们就要枚举所有情况进行dp操作#include<bits/stdc++.h>#include<cstd...原创 2019-01-26 20:44:21 · 135 阅读 · 0 评论 -
codeforces 1084 D. The Fair Nut and the Best Path(树形dp)
题目点这里题目大意:每个点有权值,每个边也有权值,找到一条路径使得 点权和减去边权和 最大,答案也可以只为一个点,输出答案思路:树形dpdp 记录该点到子节点的最大值 ans记录答案得到答案更新和转移方程;这里要先更新ans,因为要在使用to节点更新该节点之前更新ans转移方程可以理解为 to节点更新后和以前最大的取最大值ans=max(ans,dp[u]-now.se+dp[to...原创 2019-01-15 11:25:24 · 306 阅读 · 0 评论 -
codeforces 1096 D. Easy Problem(dp)
题目:http://codeforces.com/contest/1096/problem/D题意:给你一个字符串,每个字符有权值,问要删除的最小权值使得这个字符串中没有hard思路:可以看作一个动态规划问题,dp代表无法构成前缀字符的代价,dp[1]对应h前缀字符的代价,dp[2]对应ha前缀字符的代价,dp[3]对应har的代价,dp[4]对应hard代价。转移方程就相当于我们每次min...原创 2019-01-18 22:20:48 · 635 阅读 · 0 评论 -
codeforces 1061 C. Multiplicity(dp)
C. Multiplicitytime limit per test3 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given an integer array a1,a2,…,ana1,a2,…,an.The array bb is called to...原创 2018-12-23 00:19:27 · 394 阅读 · 0 评论 -
codeforces 1092 F. Tree with Maximum Cost(树形dp||换根dp)
https://codeforces.com/contest/1092/problem/F题意:给你一棵无根树,每个节点有个权值ai,指定一个点u,定义value=∑ai∗dist(u,i),求出value最大值思路:换根dp,首先考虑计算以根节点为U计算答案,首先通过一遍dfs直接求出res,然后思考一下如果变换u节点,u->to 那么to节点子树上dis-1,u节点其他子树dis+...原创 2019-08-14 23:55:33 · 173 阅读 · 0 评论