10 2020 档案

摘要:DP状态设计的思路是不难想到的,问题在于维护,每一个状态的计算,除了计算最小的和,我们同时也要记录颜色的使用情况。同时我们对于最小和的更新也必须匹配新的方法: 遍历颜色表,此前x颜色已经出现,那么此后,计算最小和,这个颜色就会贡献1个长度。 若是此前y颜色已经饱和了,也就是说明这个颜色的“线段”已经 阅读全文
posted @ 2020-10-14 08:38 IdiotNe 阅读(78) 评论(0) 推荐(0)
摘要:DP问题,大体思路dp[i]=min(dp[j]+1),其中dp[i]为从0开头,到字符串第i个字符的子字符串的最优值,这个字串的后缀必然是回文串(1个字符也看做回文串) #include <cstdio> #include <iostream> #include <algorithm> #incl 阅读全文
posted @ 2020-10-13 23:17 IdiotNe 阅读(80) 评论(0) 推荐(0)
摘要:一个关键之处在于状态转移的理解。 考虑已经按照电压升序排好序的bulb,假如有a, b, c, d, e那么如果有一些灯泡升级为了e,那么这些灯泡序号一定是连续的,例如b, c灯泡升级为e,可是d 没有,这种“跳跃”的情况是不可能的。原因如下: 假设这种情况可能,那么上面这个例子中,隔在中间必定有一 阅读全文
posted @ 2020-10-07 00:31 IdiotNe 阅读(69) 评论(0) 推荐(0)
摘要:背包问题简单使用,利用滚动数组法可以实现,因为题目中还提到在歌曲数目相同的情况下尽可能时间久,这时候就可以引入另一个DP数组tdp记录策略所对应的歌曲时间。 需要注意的是,tdp的大小关系的定义: dp[j-s[i]]+1> dp[j]时,没有争议,dp(i, j)状态时,应该选择第i首歌曲,tdp 阅读全文
posted @ 2020-10-06 22:31 IdiotNe 阅读(145) 评论(0) 推荐(0)