zoukankan      html  css  js  c++  java
  • 模拟113 题解

    A. ZYB建围墙

    手玩发现这个东西好像有一点规律。

    考虑在最优的方案下,每增加一个点对答案的贡献$0/1$,然后随便写写就好了。

    B. ZYB和售货机

    把$x$向$x$能偷的节点建边。

    发现这个东西一定会形成森林,

    其中一些树为基环树,其余为普通形态的树。

    对于普通形态的树,显然可以赚到其中所有能赚的钱。

    但基环树对应着不能从环上一个节点偷另一个节点。

    维护偷每个点的最小方案和次小方案,然后枚举环上节点就好了。

    C. ZYB玩字符串

    因为最终插入了一个字符串$p$,字符串$p$一定可以表示为$s$的一个子串。

    所以可以枚举$s$的字串。

    贪心地直接匹配后删掉的做法是错误的,可以被很简单的数据卡掉。

    然后发现这个东西好像有点像括号匹配,然而字符可以多次出现,于是无从下手。

    正解用了一个很优秀的$dp$。

    设$dp_{l,r}$表示区间$[l,r]$能否被若干个字符串$p$拼凑出来。

    如果$|p|$不被$r-l+1$整除,那么还表示最后能否又拼出$p$的一段前缀。

    这个$dp$设计的优秀之处在于当区间长度确定,拓展出现的单个字符对应$p$中位置也是确定的。

    分两种情况转移:

    由一个字符拓展,对应着最后拼出来的一段的一个。

    由若干个$p$拓展,这个过程通过记忆化递归处理。

  • 相关阅读:
    滚轮事件
    键盘事件
    运动(学习)
    事件(没有尽头的待完善)
    js 盒子模型(没写完)
    Number 数字相关的方法, 强制 、隐式类型转换 、进制之间转换
    操作DOM 和 节点
    DOM
    Object 的一些静态方法 、 for-in 循环、Object.keys() 、Object.values()、Object.entries()
    删除字段
  • 原文地址:https://www.cnblogs.com/skyh/p/11850569.html
Copyright © 2011-2022 走看看