摘要: ##Link 数位dp模板 只顺顺代码吧,太板了。。 设f[i][j][k] 当前数字是i位,最高位为j时,数字p出现的次数 初始化: void init() { p10[0] = 1; for(int i = 1; i <= 9; ++ i) p10[i] = p10[i - 1] * 10; f 阅读全文
posted @ 2022-06-04 22:48 zcxxxxx 阅读(21) 评论(0) 推荐(0) 编辑
摘要: ##Link 经典区间dp 思路: 每到了序列的一个位置,这个位置的数字就表示他有几个儿子,向下搜索0/1/2次 设状态: dp[i][j] 表示i这个节点,有j个儿子,最多有多少绿点 f[i][j] 表示i节点,有j个儿子,最少有几个绿点 在搜索的同时将三种情况都顺便转移一下。 BOOM!! /* 阅读全文
posted @ 2022-06-04 22:32 zcxxxxx 阅读(20) 评论(0) 推荐(0) 编辑
摘要: ##Link 感觉有点像最长公共子串, 但是那个是绿题,这个是蓝题,那肯定不一样qwq 整理一下思路: 设置状态: 设 \(f[i][j]\) 表示a串到i位置,b串到j位置,最长的公共子串长度。 枚举边界,因为这个状态的转移是从前边转移过来的,所以我们正向枚举。 转移,两种情况: 如果a[i] ! 阅读全文
posted @ 2022-06-04 22:17 zcxxxxx 阅读(17) 评论(0) 推荐(0) 编辑