摘要:
什么是同构树: 给定两颗树T1和T2,如果T1可以通过若干次左右孩子交换变成T2,我们就称两棵树是同构的。 将整个过程拆分来看一下,增加一些二叉树的操作: 首先是二叉树的建立: struct tnode{ char data; int right,left; }; void buildtree(tn 阅读全文
摘要:
1、合并石子 https://www.cnblogs.com/Renyi-Fan/p/7392649.html(讲得很好)方法其实有很多种的 思路:现将石子的前缀和计算出来,状态为 f[i][j] 表示为合并 i 到 j 的最小值。 f[i][j]=min(f[i][j],f[i][k]+f[k+1 阅读全文
摘要:
方格取数 Description 设有N×N的方格图,我们在其中的某些方格中填入正整数,而其它的方格中则放入数字0。如下图所示: 某人从图中的左上角A出发,可以向下行走,也可以向右行走,直到到达右下角的B点。在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字0)。 此人从A点到B点共走了两 阅读全文
摘要:
最近一直在做背包问题,就把以前的动态规划要也来总结一下下 1、数字金字塔(类似。摘花生等) 数字金字塔 Description 观察下面的数字金字塔。写一个程序查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以从当前点走到左下方的点也可以到达右下方的点。 在上面的样例中,从13到 阅读全文
摘要:
一、01背包 对物品i只有两种选择:装入或者不装入 空间优化:要从后往前递减顺序遍历,f[j]=max(f[j],f[j-w[i]]+c[i]) 模板: #include <bits/stdc++.h> using namespace std; const int N=2005; int w[N], 阅读全文