摘要: 树型DP入门题题目链接:http://acm.sjtu.edu.cn/OnlineJudge/problem/1077•设f(i,j)中序遍历为i,i+1,…,j的二叉树的最大加分,则有: f(i,j)=max{f[i,k-1]*f[k+1,j] +d[k]}•显然 f(i,i)=d[i]•答案为f(1,n)•1<=i<=k=<=j<=n•时间复杂度 O(n3)•要构造这个树,只需记录每次的决策值,令b(i,j)=k,表示中序遍历为i,i+1,…,j的二叉树的取最优决策时的根结点为k最后前序遍历这个树即可。/*树型DP*/#include <cstdio># 阅读全文
posted @ 2013-03-18 19:05 Titanium 阅读(854) 评论(0) 推荐(0) 编辑
摘要: 推荐技术公众号:不爱睡觉的大猪 容斥原理 题意:给n*m的矩阵有点,左下角的点为(1,1),右上角的点(n,m),(其实转回来也是没影响的即m*n),一个人站在(0,0)看这些点,在一条直线的视线上,它只能看到最前面的那个点,后面的点将会被档住他看不到,问你,这个人一共能看到多少个点。 这个问题只要 阅读全文
posted @ 2013-03-18 15:22 Titanium 阅读(1435) 评论(5) 推荐(0) 编辑
摘要: 枚举子集+模拟2012国赛简单题。题意有n*n的点,有一些点是空地可以放稻草人保护稻草,稻草人有保护范围,就是距离为r的曼哈顿距离。问要保护所以的草最少要多少个稻草人,输出最少个数,如果全部放入都不能全部保护则输出-1这题有坑,不过代码写得好的话,坑是可以避免的,不需要特判。1.可以能一个空地都没有即不能放稻草人,所有稻草都无法收到保护,输出-1。2.所有点都是空地,全部放稻草人,这样的话答案是0,因为根本没有草不需要保护。2.注意一点,我就是为此WA了好多次,空地是不需要保护的!比如枚举了放置的稻草人并把受保护的点染色为1,如果有些点为0,并不一定是失败,可能那个点是空地,虽然它没有放稻草人 阅读全文
posted @ 2013-03-18 13:01 Titanium 阅读(410) 评论(0) 推荐(0) 编辑