CH

Sol

f[l][r]表示l到r这段区间对应的金字塔结构种数

发现是f[l][r]是可以由比它小的区间推出来的

比如已知f[l+1][k],f[k+1][r],不难想到f[l][r]+=f[l+1][k]*f[k+1][r],if(s[l+1]==s[k]&&s[k+1]==s[r])

为什么是f[l+1][k]*f[k+1][r]呢,可以画图理解

如图,分为1,2两个部分.s[l],s[k+1],s[r]表示的是最上面的那个根结点;s[l+1],s[k]是左边子树的根结点

但是并不能直接枚举k,因为这样可能重复计数

因为当前不同的划分方式可能会得到一样的最终状态

为了避重,我们可以枚举这段区间的第一棵子树是哪一段

从而把区间分为第一棵子树与剩余的部分这两部分

可以采取区间DP的一般枚举方式(区间长度,起点,终点)

由于是树形的结构,所以也可以采用递归实现的方式(记搜)

Code

递归 Code

随机推荐

  1. CH1401 兔子与兔子

    #include<bits/stdc++.h> using namespace std; ,p=; typedef unsigned long long ULL;//自然溢出 ULL f[ ...

  2. HZOJ 数颜色

    一眼看去树套树啊,我可能是数据结构学傻了…… 是应该去学一下莫队进阶的东西了. 上面那个东西我没有打,所以这里没有代码,而且应该也不难理解吧. 这么多平衡树就算了,不过线段树还是挺好打的. 正解3: ...

  3. @noi.ac - 488@ cleaner

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 小Q计划在自己的新家中购置一台圆形的扫地机器人.小Q的家中有一个 ...

  4. 2019-9-2-给博客添加rss订阅

    title author date CreateTime categories 给博客添加rss订阅 lindexi 2019-09-02 12:57:38 +0800 2018-2-13 17:23 ...

  5. Python--day43--增删改查补充和limit以及order by

    增删改查补充: 增: 删和改: 查: 其他: limit:(具有分页的功能) 分页:

  6. 2018-8-10-VisualStudio-合并代码文件

    title author date CreateTime categories VisualStudio 合并代码文件 lindexi 2018-08-10 19:16:52 +0800 2018-2 ...

  7. vue v-for循环中key属性的使用

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 关于Spring JavaWeb工程中的ContextRefreshedEvent事件

    在应用启动时,通常想在此时预加载一些资源,全局使用. Spring会在操作应用上下文时,使用ApplicationEventPublisher触发相关ApplicationContextEvent,我 ...

  9. 2018-8-10-win10-uwp-绑定-OneWay-无法使用

    title author date CreateTime categories win10 uwp 绑定 OneWay 无法使用 lindexi 2018-08-10 19:16:50 +0800 2 ...

  10. POJ 1511 Invitation Cards(逆向思维 SPFA)

    Description In the age of television, not many people attend theater performances. Antique Comedians ...