随笔分类 - 动态规划
摘要:题意:给一个字符串,问形如a……a/ /b……b/ /a……a的子串最大长度 题解:设三个状态a,ab,aba分别表示对应长度。因为每段长度可以为0,所以后一个状态的包含前一个状态。每次更新最大长度,最终的aba即为答案
阅读全文
摘要:1 /* 2 n个商店,每个商店的数值是ai,能提升的能力值为ai的二进制形式的结尾0的个数 3 购买序列的ai必须升序,问顺序访问商店最大提升能力值为多少 4 动态规划,定义dp[n]为以购买第n个商店的升级为结尾的购买方案的提升最大值 5 所以dp[0]=0; 6 dp[i]=max(dp[i],dp[j]+k[i]); 7 */ 8 #include 9 using n...
阅读全文
摘要:1 /* 2 把一个字符串分成若干段,每一段里面的字符不能重复,问有多少种分法 3 动态规划,定义dp 表示字符串前n个字母的分法种数,先预处理字符串,对于每个字符, 4 计算出以这个字符为结尾的无重复字符的一段最长的长度,第i个字符对应的长度记为f[i] 5 然后可以得出递推式: 6 dp[0]=1; 7 dp[i]=dp(i-j) (1 10 using namespace...
阅读全文
摘要:解题思路: 利用深度优先搜索找到经历1到n-1的路径然后再从n-1到n,结合最优性剪枝。 如果当前已经找到的最优路径时间为T,那么以后总时间已经大于T的走法就可以直接放弃。 如果之前到达某个状态比这次花费的时间要少,则剪枝。 如何表示某个状态呢,该状态可以去掉1和n,只与当前所在城市和走过的城市有关
阅读全文

浙公网安备 33010602011771号