题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=17662题意:给一棵边有权值的二叉树,节点编号为1~n,1是根节点。求砍掉一些边,只保留q条边,这q条边构成的子树的根节点要求是1,求这颗子树的最大权值。分析:1.dp...
分类:
其他好文 时间:
2015-01-04 22:58:28
阅读次数:
154
题意:规定一棵生成树的苗条度为:最大权值与最小权值之差。给出一个n个顶点m条边的图,求苗条度最小的生成树。分析:按照边的权值排序,枚举边集的连续区间[L, R]的左边界L,如果这些区间刚好满足一个生成树,则存在一个苗条度不超过W[R] - W[L]的生成树。话说,代码中用了STL的vector,慢了...
分类:
其他好文 时间:
2015-01-04 13:16:59
阅读次数:
134
题意:输入n、m、p然后是n头牛塔坐标、m个草垛坐标,有p次指令机会。
每次指令可以向上下左右其中一种方向,让所有牛塔都移动一单位。
然后每经过草垛/牛塔次,就有1个权值。
求权值最大值及使权值最大的移动指令序列(字典序最小)。
题解:f[i][j][k]表示第i次,移动序列x轴坐标为j,y轴k,最大权值。
然后倒着做以保证字典序。
代码:
#include ...
分类:
其他好文 时间:
2015-01-01 17:23:43
阅读次数:
197
题目大意:给定一张图,求从1开始到达m的权值至少需要遍历多少条边
n
f[temp][i][j]表示经过2^temp条边从i走到j的最大权值
更新时f[temp[i][j]=max{f[temp-1][i][k]+f[temp-1][k][j]}
然后用矩阵g[i][j]记录当前走的权值,初始主对角线为0,其余为-∞
从大到小枚举temp,利用f[temp]和g得到矩阵h
如果h中1到...
分类:
其他好文 时间:
2014-12-26 09:40:29
阅读次数:
171
问题
有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。这些物品被划分为若干组,每组中的物品互相冲突,最多选一件。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。
算法
这个问题变成了每组物品有若干种策略:是选择本组的某一件,还是一件都不选。也就是说设f[k][v]表示前k组物品花费费用v能取得的最大权值,则有:
f[k][v]=max...
分类:
其他好文 时间:
2014-12-20 15:37:21
阅读次数:
132
题目大意:给出电影院的放映电影顺序,一个电影只有看过一次的时候会获得电影的权值。没看过或者看两次或以上都不能获得权值。问看连续区间的电影能够获得的最大权值是多少。
思路:利用线段树维护前缀和。将出现第一次的地方的权值加上那部电影的权值,第二次出现的时候权值减去那部电影的权值。枚举起点,先更新答案,然后在当前节点减去权值的二倍,然后再在下一次出现的地方加上权值(我感觉我没说明白,总之看代码...
分类:
其他好文 时间:
2014-12-01 22:35:48
阅读次数:
292
链接:点击打开链接
题目好长, 而且还有图片,所以就不复制粘贴过来了,这道题的大意是:
一棵树T(连通无环子图)将用n-1条边连接原图的所有的n个顶点,生成的生成树的最大权值边与最小权值边的差(称“苗条值”)尽量小,找出这个最小的苗条值;
思路:
用kruskal枚举;
首先对每条边的权值从小到大进行排序;
枚举每条边为最小边生成最小生成树,并计算这样的生成树的苗条值,枚举玩所...
分类:
其他好文 时间:
2014-11-27 20:32:28
阅读次数:
156
/*树形dp:给一颗树,要求一组节点,节点之间没有父子关系,并且使得所有的节点的权值和最大对于每一个节点,我们有两种状态dp[i][0]表示不选择节点i,以节点i为根的子树所能形成的节点集所能获得的最大权值和 dp[i][1]表示选择节点i ,同上!转移方程:dp[i][0]+=max(dp[i_s...
分类:
其他好文 时间:
2014-11-17 21:07:58
阅读次数:
146
题意:给定一个完全图,求将其分为两部分的边权值和最大
如:题中第一组样例:
3
0 50 30
50 0 40
30 40 0
将顶点分为两个集合A={2},B={1,3},sum=C21+C23=90为最大权值和...
分类:
Web程序 时间:
2014-11-07 11:26:13
阅读次数:
179
树链剖分是解决在树上进行插点问线,插线问点等一系列树上的问题
假如现在给你一棵树,然后没两条边之间有一条权值,有一些操作,1:x---y之间的最大权值是多少,2:改变x---y之间的权值
当前这样的操作有很多,如果直接用暴力的方法的话肯定不行,那么就要想一个好的方法,我们可以想一下能不能借助线段树解决,能不能想一种方法对树上的边进行编号,然后就变成区间了。那么我们就可以在线段树上进行操作了...
分类:
其他好文 时间:
2014-10-23 17:48:23
阅读次数:
285