![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DP
文章平均质量分 75
hiding_nya
这个作者很懒,什么都没留下…
展开
-
3791 DP
1.题意:将一个长度为n的0-1串,变为另一个长度为n的0-1串,执行k次操作,每次操作将m个位置从0变为1或从1变为0,问你有多少种操作方法可以使源串变为目标串。2.题解(1)用dp[i][j]表示源串第i次操作后,与目标串不同的位置有几个。(2)对于dp[i][j],有j个位置与目标串不同,所以可以将j个位置中的t个位置变为与目标串相同, 把其余n-j个位置中的m-转载 2015-05-13 23:50:22 · 212 阅读 · 0 评论 -
hdu 4734 数位DP
//hdu 4734 F(x) 数位dp的题////我们定义十进制数x的权值为f(x) = a(n)*2^(n-1)+a(n-1)*2^(n-2)+...a(2)*2+a(1)*1,a(i)表示十进制数x中第i位的数字。//题目给出a,b,求出0~b有多少个不大于f(a)的数。//////dp[i][j]表示i位值<=j 的总数//bit位由低位到高位存储//dfs由高位到低位进转载 2015-05-13 23:49:53 · 233 阅读 · 0 评论 -
poj 2342 树形DP
//树形DP,递归调用,从叶子节点开始DP;#include#include#include#include#include#include#include#include#define maxn 10000using namespace std;int father[maxn];bool vis[maxn];int n;int dp[maxn][2];vo转载 2015-05-13 23:51:05 · 217 阅读 · 0 评论 -
HDU 2242 双联通加树形DP
//边双连通还有缩点重新建图再DFS一次//题意:给一个无向图连通,图中每个结点都有一个权值,问能否割掉图中的一条边,使得图变为2个连通支,//若能,使2个连通支中权值和的差最小,输出差的绝对值。N<=10^4#include#include#include#include#include#include#includeusing namespace std;int n,m转载 2015-05-14 11:04:08 · 231 阅读 · 0 评论 -
UVA 1025 DP
//uva 1025 过了#include#include#include#include#include#include#include#define inf 0x3f3f3f#define maxn 60#define maxt 220using namespace std;int ca;int dp[maxt][maxn];int n,T;bool have转载 2015-05-13 23:54:28 · 198 阅读 · 0 评论 -
POJ 3659 树形DP,最小支配集
/**[树形DP] poj 3659 Cell Phone Network给定一棵树,求最小支配集dp[i][0] = sum(min(dp[s][2],dp[s][1]))自己没被选,父节点被选中dp[i][1] = sum(min(dp[s][1],dp[s][2]))自己没被选,某儿子结点被选中dp[i][2] = sum(min(dp[s][0],dp[s][1],dp[s][2转载 2015-05-14 11:13:42 · 219 阅读 · 0 评论 -
HDU 2196 树形DP经典题
//经典的树形DP题。//题意是求树中每个点到所有叶子节点的距离的最大值是多少。//由于对于一个节点来说,可能得到的距离最大的值的路径来自他的子树,//或者从他的父节点过来,所以用两次DFS。//第一次DFS求出所有节点在他的子树范围内到叶子节点距离的最大值和第二大的值,第二次DFS更新从父节点过来的情况就可以了。//因为如果只存最大值的话,判断一个点的从父节点过来的最大值,那么如果他的转载 2015-05-13 23:49:17 · 283 阅读 · 0 评论 -
POJ 1947树形DP
题目:给你一棵树,求最少剪掉几条边使能够得到一个p个节点的树。解题思路:dp[i][j]代表以i为根的子树要变成j个节点需要剪掉的边数d[i][j] = max(dp[i][j], dp[i][k]+dp[son][j-k]);注意最后的选择中,非根节点的要加上减去连接父节点的那条边。// Poj 1947 Rebuilding Roads //////题目大原创 2015-06-19 23:23:46 · 259 阅读 · 0 评论 -
POJ 1155 树形DP
题目:给定一棵树,有边权,现在1为电视台,m个叶子为客户,其余为中转站,每个客户愿意花费cost[i]给电视台,电视台到每个客户有费用,求cost>=花费的情况下最多可到达的客户数。假设dp[i][j]表示以i为根节点选择j个用户产生的最大价值。/状态转移方程: dp[v][1] = cost[v]; (v为叶子节点) dp原创 2015-06-19 23:26:58 · 243 阅读 · 0 评论