摘要: http://poj.org/problem?id=1463DP,树状DP,或二分图匹配 1 #include <iostream> 2 #include <stdio.h> 3 #include <string.h> 4 #include <vector> 5 using namespace std; 6 7 const int N = 1505; 8 9 int pre[N];10 bool flag[N];11 vector<int> map[N];12 int n;13 14 int find(int x)15 {16 int 阅读全文
posted @ 2013-05-23 19:52 Yuan1991 阅读(154) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1947DP,树状DP一棵节点为N的树,去掉最少的边,满足剩下树中,有一棵树的节点数为P还要用分组背包优化,分组背包自己想的思路,写的比较难看。。。dp[i][j]:表示以节点i为根的树,如果想要保证有j个节点,至少要去掉的边数对于每组dp[i],只能选一种j,如果不选这一组,也要多消耗1的费用叶子节点初始化:dp[i] = {0, 1, 正无穷, 正无穷.......};之后看了一下背包九讲:还可以把每个节点看成一个物品,那就成了背包九讲中的“泛化物品”背包,之前没理解泛化的意思,现在有了一个大概的理解了安背包九讲的定义,这题可以简述成:有 阅读全文
posted @ 2013-05-23 17:55 Yuan1991 阅读(145) 评论(0) 推荐(0)