• 退役后的颓废记录(No Password)


    T2多测没清空,爆零了。

    没什么好说的,也不知道有没有机会了。

    趁着最后半天whk半天竞赛的日子再做些题吧。

    ARC110E

    挺神的一道dp题。

    这么考虑:如果一段串可以拍成一个字母,那么其实这个字母是唯一确定的。

    再进一步:可以吧$ABC$每个字母都看成二进制,两个数结合就是异或。把$ABC$分别赋值为$1,2,3$,发现如果一段的异或和不为0,那么它一定能缩成一个字母,反之则不能缩成(如果这一段前面有字母的话,可以把这一段全部干掉)。

    那么我们设$dp[i]$表示当前以$i$结尾的方案数,思考如何转移。

    转移的时候可以枚举后面那段哪些拍成哪个字母,因为统计方案会重复(考虑相同类型的两个位,它们之间的异或和是0,可以全部干掉,会重复统计),所以只更新最短的可以形成各个字母的位。(其实就是每种字母每种出现次数只更新一次)

    在统计答案时,因为保证了$dp[i]$的第$i$为一定是作为最后一位存在的,而事实上$n$不一定存在,它可以被所有异或和为0的串干掉,所以要把所有后缀异或和为0的前一位全部统计。

    注意字母全部相同的Corner Case。

  • 相关阅读:
    【机器学习笔记五】聚类
    【机器学习笔记四】分类算法
    【机器学习笔记三】回归分析
    【机器学习笔记二】回归分析
    【机器学习笔记一】协同过滤算法
    一个简单的前端事件框架
    javascript面向对象理解的补充
    kafka基础知识点
    linux 常用监控命令备注
    最优化算法-梯度下降
  • 原文地址:https://www.cnblogs.com/Forever-666/p/14100091.html
Copyright © 2020-2023  润新知