10.29 考试总结

10.29 考试总结

a

咋一看是暴力跑循环,实际上还是暴力循环。只不过根据题目意思,实际上公式\(f(x) + x = n\)而这个f(x)就是x各个位的和。大概脑补一下还是能算出来f(x)最大也就是9*位数就可以将整体的循环控制在几千......


b

\(dp[i][j][k][0/1]\) 表示当前字符串s 到了第i 位,字符串t 到了第j 位,目前一共
选出了k 个子串,s[i] 与t[j] 是否都被选择的最大长度。
考虑s[i] 与t[j] ,如果我们不将它们加入选择的k 个子串,那么:

\[dp[i][j][k][0] = max(dp[i][j][k][0],max(dp[i − 1][j][k][0], dp[i − 1][j][k][1])) \]

\[dp[i][j][k][0] = max(dp[i][j][k][0],max(dp[i][j − 1][k][0], dp[i][j − 1][k][1])) \]

如果s[i] = t[j] ,且我们将它们加入选择的k 个子串,那么:

\[dp[i][j][k][1] = max(dp[i][j][k][1], dp[i − 1][j − 1][k][1] + 1) \]

\[dp[i][j][k][1] = max(dp[i][j][k][1],max(dp[i − 1][j − 1][k − 1][0], dp[i − 1][j − 1][k − 1][1]) + 1)\]

实际上还真不会树形DP,然后连着考了自然就是连着炸.....

c

暴力写法实际上还是很好实现的最后快考完的时候才看懂题目,所以还是没有写出来。本身正解好像还是暴力,只不过通过预处理来降低一部分复杂度....

总结

这套题作为一套给同学们增长信心的题,难度中等,码量偏低,解法自然,是一套
不错的练手题。

可能是我太菜了

posted @ 2018-10-30 15:01  Rendex  阅读(115)  评论(0编辑  收藏  举报
Live2D