摘要:
原题链接 考察:区间dp 递推思路: 套区间dp模板,划分集合的时候分为增加或者减少 f[i][j]为当前区间为[i,j]时变为回文串的最小花费. 就和密码脱离那道题差不多,if s[i] = s[j] f[i][j] = f[i+1][j-1]. else f[i][j] = min(f[i+1] 阅读全文
posted @ 2021-02-18 23:26
acmloser
阅读(51)
评论(0)
推荐(0)
摘要:
原题链接 考察:记忆化搜索 错误思路: 将f[i][j]定义为达到此点的最大分数,结果是TLE. 正确思路: 和滑雪那道题一样,要将f[i][j]定义为从mp[i][j]出发的最大分数. 应该考虑记忆化搜索的优化原理是搜过一次就不要再搜 1 #include <iostream> 2 #includ 阅读全文
posted @ 2021-02-18 20:21
acmloser
阅读(52)
评论(0)
推荐(0)
摘要:
原题链接 考察:记忆化搜索 错误思路1: 数组记录x与y的值,如果重复出现就判死循环. 审题,只有当x的值与操作在此前出现过才是死循环,y的值不影响循环,而单凭x的值也不能判死循环.因为可能进行的操作会不同.所以根据x与下一个操作才能判定一个状态. 错误思路2: for循环i-1遍,用bool数组记 阅读全文
posted @ 2021-02-18 18:39
acmloser
阅读(104)
评论(0)
推荐(0)
摘要:
原题链接 考察:树形dp 思路: 设f[i][j]表示和为i,j==1表示经过了>=d的边,j=0表示未经过的方案数.以最后一步来划分集合,最后一步的和为i-j,此时边为j,那么状态转移方程是: if(j>=d) f[i][1] = f[i-j][0]+f[i-j][1] else f[i][1] 阅读全文
posted @ 2021-02-18 14:54
acmloser
阅读(63)
评论(0)
推荐(0)
摘要:
原题链接 考察:记忆化搜索 思路: dfs模拟即可,用map判断当前数字出现过几次.但是回溯的时候要注意,如果本该有的数字没有说明被凑成了一对,但是恢复要恢复成1,如果有就要去掉这个数字. 本蒟蒻真的写得很繁琐,这位大佬利用位运算0 1的性质避免了判断2,很妙 GO 网上题解基本都用了步数作为参数, 阅读全文
posted @ 2021-02-18 02:17
acmloser
阅读(27)
评论(0)
推荐(0)

浙公网安备 33010602011771号