题意:
给定n个点的树,m个黑点
下面n-1行给出边和删除这条边的费用
下面m个黑点的点标[0,n-1]
删除一些边使得任意2个黑点都不连通。
问删除的最小花费。
思路:
树形dp
每个点有2个状态,成为黑点或白点。
若本身这个点就是黑点那么只有黑点一种状态。
否则可以认为是子树中某个黑点转移上来。
所以dp[i][0]是i点为黑点的状态。
#pragma comm...
分类:
其他好文 时间:
2014-10-02 20:59:23
阅读次数:
320
题目:有一个单词表a,..,z,ab,..,yz,...vwxyz,给你一个单词,输出对应的编号。
分析:dp,数学。利用递推统计计数即可知道位置。
状态:F(l,s)代表长度为l的起始为s的元素的个数;
阶段:长度 { 逆向向前拼 };
转移:F(l,s)= sum(F(l-1,t)) { 其中,s
说明:应该可...
分类:
其他好文 时间:
2014-10-01 23:36:21
阅读次数:
213
题目:四平方定理,输出一个数可以表示成不超过四个平方数和的表示方法数。
分析:dp,完全背包。整数拆分用背包,可用一维分步计算,也可统一写成二维。
状态:设f(i,j,k)为前i个数字,取j个数字他们的平方和是k的便是方法数;
转移:f(i,j,k)= sum(f(i-1,j-1,k-i*i));{ 其中i可以省掉不写 };
说明:打表计...
分类:
其他好文 时间:
2014-10-01 20:21:31
阅读次数:
175
题目大意:
修改文本串的上的字符,使之不出现上面出现的串。问最少修改多少个。
思路分析:
dp[i][j]表示现在 i 个字符改变成了字典树上的 j 节点。
然后顺着自动机一直转移方程。
注意合法与不合法。
#include
#include
#include
#include
#define inf 0x3f3f3f3f
using namespace std...
分类:
其他好文 时间:
2014-10-01 19:51:21
阅读次数:
159
题目详情
小强有 3 个箱子 A,B,C 用来装书,所有的书(一共n本)都按序号由小到大的顺序堆在 A上,现在他想把所有的书全都放到 C 里面去。每次他从 A 书架拿 a 本书(不够就全拿完)到 B,A 箱子翻转,然后从 B 拿 b 本书(不够就全拿完)到
C,B 箱子翻转。然后重复操作,直到所有书都到了 C,求最后的C 里面书的顺序,详细见样例。
输入描述:
输入由多组...
分类:
其他好文 时间:
2014-10-01 13:48:31
阅读次数:
213
洗脑术碰到别人故意为难让你回答一些尴尬的问题时,可以 你可以逃避 善用你的不诚实 或转移话题想要控制他人 则需要 胡萝卜 + 棒子最好的管理手段是,引导员工的梦想与公司的目标一致阿伦森效应:与人相处时,没必要把所有的好急于奉献给对方。否则,当对方觉得一切来的太容易之前,他不会珍惜你对他的好。举例:a...
分类:
其他好文 时间:
2014-10-01 00:56:00
阅读次数:
267
题意:b(0
题目链接:http://poj.org/problem?id=1170
——>>已有b种物品,再将每种优惠分别看成一种新物品,剩下就是完全背包问题了。。
设dp[i]表示购买状态为 i 时的最少花费(关于购买状态:00032表示第0种物品买2个,第1种物品买3个),则状态转移方程为:
dp[i + product[j].nState] = min(dp[i + produc...
分类:
其他好文 时间:
2014-09-30 21:17:00
阅读次数:
243
题目描述:
给定一个浮点数序列(可能有正数、0和负数),求出一个最大的连续子序列乘积。
分析:若暴力求解,需要O(n^3)时间,太低效,故使用动态规划。
设data[i]:第i个数据,dp[i]:以第i个数结尾的连续子序列最大乘积,
若题目要求的是最大连续子序列和,则易确定状态转移方程为:
dp[i]=max(data[i],dp[i-1]+data[i])(dp[i]为以第...
分类:
其他好文 时间:
2014-09-30 18:55:59
阅读次数:
141
概要:状态、转移;最优子结构、无后效性。技巧及注意:dp就是纯经验+智商题在dp方程写出来后,一定要考虑边界!不要以为转移对了就行了!滚动数组的话一定要考虑好顺序!下标有时候可以灵活使用!比如mod意义下的dp,倍数什么、可到达性等题目都可以这样做。如果是线性序列的max{f[k]},k<i这种可以...
分类:
其他好文 时间:
2014-09-30 16:46:39
阅读次数:
240
从任意的W开始,不停地把邻接的部分用'.'代替。1次DFS后与初始的这个W连接的所有W就都被替换成了'.',因此直到图中不再存在W为止,总共进行DFS的次数就是答案了。8个方向共对应了8种状态转移,每个格子作为DFS的参数至多被调用一次,所以复杂度为O(8×N×M)=O(N×M)。
#include
#include
#include
#include
using namespace std;
...
分类:
其他好文 时间:
2014-09-30 00:32:41
阅读次数:
215