摘要: 题意:给定一棵树,求切出有n个结点的子树至少要切几条边。解法:dp[i][j]记录使得以i为根的子树有j个结点最少要切几条边 dp[i][j]=min(dp[i][j],dp[i][j-k]+dp[son[i]][k]) 最后统计答案时要注意,如果不是根节点还要+1...切掉这个节点与其父亲之间的边 1 #include<iostream> 2 #include<vector> 3 #include<cstring> 4 #include<algorithm> 5 #define N 200 6 using namespace std; 7 co 阅读全文
posted @ 2012-10-31 19:48 silver__bullet 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 250pt.题意:给定n块砖,编号0~n-1,选一定的砖摞起来,要求上面的砖编号比下面的大,并且偶数高度的不能放在奇数高度的上面,求最大高度。解法: dp[i][0]记录选完前i块并且此时最上面一块高度为偶数的最优解 dp[i][1]记录选完前i块并且此时最上面一块高度为奇数的最优解。。。250pt 1 #include<iostream> 2 #include<string> 3 #include<cstring> 4 #include<algorithm> 5 #include<vector> 6 #define N 100 7 阅读全文
posted @ 2012-10-31 16:39 silver__bullet 阅读(200) 评论(0) 推荐(0) 编辑