- 博客(5)
- 收藏
- 关注
原创 P1073 加分二叉树
如果整棵树的权值最大,必然有左子树的权值最大,右子树的权值也最大,符合最优性原理。实际上是区间动规:直接定义一个f[i][j]表示从i到j的最大值,则f[i][j]=max(f[i][k-1]*f[k+1][j]+a[k]),枚举k即可。要构造这个树,只需记录每次的决策值,令root(i,j)=k,表示中序遍历为i,i+1,…,j的二叉树的取最优决策时的根结点为k。import
2016-04-30 11:08:37 220
转载 P1059 过河
状态压缩的dp状态转移方程f(n)=min{f(n),f(n-i)}+(n位置有石头?1:0) S对于30%的数据,L 对于全部的数据,L 数据规模大,需要进行压缩第一种情况: 当s=t时,很简单,青蛙踩到的石头肯定是s的倍数,那么只要统计一下所有石子中有多少是s的倍数,输出即可。
2016-04-29 16:31:04 317
原创 沙子合并
问题描述:设有n堆沙子,其编号为A1,A2,A3……An,每堆沙子都有一定的数量,例如:13 7 8 16 21 4 18现在要将n堆沙子归并成一堆,归并的过程为每次只能将相邻的两堆沙子堆成一堆,这样经过n-1次归并后成为一堆。归并的代价是这样定义的:将两堆沙子归并为一堆时,两堆沙子的数量的和称为归并两堆沙子的代价。问题:但n堆沙子的数量给出
2016-04-17 09:14:13 1146
原创 p1057 金明的预算方案
搜索法可行dfs大法:private void dfs(int n,int totalv,int product){count++;if(product>max)max=product;used[n]=true;for(int i=1;iif(!used[i]){int f=father[i];if(f==0||(f>0&&used[f]
2016-04-16 19:28:30 243
原创 p1056 能量项链
区间dp左边已成为一堆,右边成为一堆时,合并的能量如何表示?状态转移方程F[i,j]=Max{ F[i,k] + F[k+1,j] + B[i].L * B[k].R * B[j].R } (i<=k<=j-1)边界条件F[i,i]=0 (1<=i<=2*N-1)目标结果Max{ F[k,k+N-1] } (1环形,复制一遍贴在后面
2016-04-16 09:21:11 215
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人