编辑距离 51Nod - 1183 补一道经典dp问题~ 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int maxn = 1010; 4 5 char s[maxn], p[maxn]; 6 int dp[maxn][maxn ...
分类:
其他好文 时间:
2017-10-23 01:14:07
阅读次数:
209
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1412 题意: 思路: 经典dp!!!可惜我想不到!! $dp[i][k]$表示i个结点,最大深度为k的形态数。 它的转移方程就是: j是右子树结点个数,如果除去根结点,是不 ...
分类:
其他好文 时间:
2017-08-18 23:42:26
阅读次数:
203
1.背包问题 (1)01背包 从n个重量和价值分别为wi,vi的物品,从中选出不超过W的物品,每种物品仅有一件,求所有方案中V的最大值。 最朴素最简单也最费时的方法:O(2^n) int rec(int i,int j)//从第i个开始挑选总重小于j的部分 递归 递归终止条件:i==n return ...
分类:
其他好文 时间:
2017-08-18 20:04:23
阅读次数:
196
经典dp,两重for循环:intmaxv=1;for(inti=1;i<count;i++){printf("checkelement:%d\n",nums[i]);for(intj=0;j<i;j++){if(nums[i]>nums[j])dp[i]=max(dp[j]+1,dp[i]);}printf("dp[%d]:%d\n",i,dp[i]);maxv=max(maxv,dp[i]);}一定要注意的是,对于i和j指定的元素,均表..
分类:
其他好文 时间:
2017-07-28 22:19:42
阅读次数:
180
据说是经典dp问题? 对于每个a[i][j],表示第 i 种花放在第 j 个花瓶里时产生的美学价值(aesthetic value), 我们用dp[i][j]表示共 i 种花放到 j 个花瓶里,产生的最大美学价值(显然这需要i<=j)。 那么我们的答案也很简单,就是dp[F][V]。 那么接下来就是 ...
分类:
其他好文 时间:
2017-07-26 23:29:44
阅读次数:
208
滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 74996 Accepted: 27818 Description Michael喜欢滑雪百这并不奇怪, 由于滑雪的确非常刺激。但是为了获得速度,滑的区域必须向下倾斜,并且当你 ...
分类:
其他好文 时间:
2017-06-18 15:08:13
阅读次数:
134
链接 分析:经典DP题,最长不下降子序列的变种,同时需要记录路径,用pre[]数组记录当前结点的前一个结点的方法很妙 1 #include "iostream" 2 #include "cstdio" 3 #include "cstring" 4 #include "string" 5 #inclu ...
分类:
其他好文 时间:
2017-06-17 14:22:23
阅读次数:
116
题目:在m*n的地板上铺上同样的1*2的地板砖,问有多少种铺法。 分析:dp,组合,计数。经典dp问题,状态压缩。 状态:设f(i,j)为前i-1行铺满,第i行铺的状态的位表示为j时的铺砖种类数; 转移:由于仅仅能横铺或者竖铺。那么一个砖块铺之前的状态仅仅有两种; 且假设当前竖放会对下一行产生影响, ...
分类:
其他好文 时间:
2017-04-30 12:38:45
阅读次数:
257
题意:选择k(k<15)个唯一质数,求出和为n(n<1121)的可能数 题解:预处理dp,dp[k][n]表示使用k个素数拼成n的总方案数 就是三重枚举,枚举k,枚举n,枚举小于n的素数 但是注意三重循环的顺序与位置,我们要防重防漏 第一重循环是枚举每个小于n的素数,思路是对于每个素数放入dp里面的 ...
分类:
其他好文 时间:
2017-04-12 23:03:51
阅读次数:
159
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1024 题目大意: 求n个数分成m个子区间的最大和 推导过程已写在代码中 ...
分类:
其他好文 时间:
2017-03-08 23:11:39
阅读次数:
206