点击打开链接
题意:给出一棵多叉树,每个结点的任意两个子节点都有左右之分。从根节点开始,每次尽量往左走,走不通就回溯,把遇到的字母顺序记录下来,可以得到一个序列。给定一个序列,问有几种满足的多叉树。
思路:
1 设输入的序列为S,dp[i][j]为子序列Si,Si+1...Sj对应的树的个数,则边界条件是dp[i][i] = 1,且Si不等于Sj时dp[i][j] = 0。
2 这样在非边界情况下,Si = Sj递推的关系为dp[i][j] = sum{dp[i+1][k-1]*dp[k][j]} i+2 <= k <= j。
代码:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long int64;
const int MAXN = 310;
const int MOD = 1e9;
char str[MAXN];
int64 ans[MAXN][MAXN];
int64 solve(int i , int j){
if(i == j)
return 1;
if(str[i] != str[j])
return 0;
if(ans[i][j] >= 0)
return ans[i][j];
ans[i][j] = 0;
for(int k = i+2 ; k <= j ; k++)
ans[i][j] += (solve(i+1 , k-1)*solve(k , j))%MOD;
return ans[i][j];
}
int main(){
while(scanf("%s" , str) != EOF){
memset(ans , -1 , sizeof(ans));
printf("%lld\n" , solve(0 , strlen(str)-1));
}
return 0;
}
分享到:
相关推荐
在机器人路径规划领域,Bidirectional Rapidly-exploring Random Trees (Bi-RRT) 是一种高效且广泛应用的算法,尤其在解决复杂环境中的路径搜索问题时。Bi-RRT 算法是对传统 RRT(Rapidly-exploring Random Trees)...
2-Neuroscience-Exploring the Brain=神经科学.iso
《Web数据挖掘——探索超链接、内容与使用数据》这本书是由Bing Liu撰写,于2007年由Springer出版社出版。本书对网络数据挖掘领域进行了深入探讨,涵盖了超链接结构、网页内容以及用户访问日志的挖掘技术。...
Arduino-Exploring-Arduino-1st-Edition.zip,Jeremy Blumemexploring Arduino的书《探索Arduino》第一版的配套代码:第一版,Arduino是一家开源软硬件公司和制造商社区。Arduino始于21世纪初,深受电子制造商的欢迎,...
根据提供的文件信息,我们可以深入探讨《Building Great Sentences - Exploring the Writer's Craft》这一作品中的关键知识点。此书由布鲁克斯·兰登博士撰写,由The Teaching Company出版,主要聚焦于句子构建的...
标题《Art-Exploring-the-New-Android-KitKat-Runtime》中的知识点涵盖了Android KitKat操作系统版本中引入的新运行时环境(Runtime Environment),特别是ART(Android Runtime)的探索和分析。Android KitKat是...
ROS机器人开发实践-源码 ros_exploring-master.zip 文件夹名 描述 ros_primary ROS基础功能 robot_mrobot mrobot相关的功能包 robot_marm marm相关的功能包 robot_perception 机器人感知相关的功能包 ros_advanced ...
在机器人路径规划领域,Rapidly-exploring Random Trees(快速探索随机树,简称RRT)算法是一种常用的方法。RRT算法主要用于解决机器人在未知环境中寻找从起点到终点的最短或最优路径的问题,尤其适用于高维度配置...
【网络技术-网络基础-Exploring the Genetic Basis of Northern Leaf Blight via Genome Wide Association Mapping in Maize】 这篇学位论文主要探讨的是通过基因组关联映射(Genome Wide Association Mapping,...
RRT(Rapidly-Exploring Random Trees)算法是一种在未知环境中进行路径规划的常用方法,尤其适用于高维度和复杂的连续空间。它通过构建随机树来探索搜索空间,并逐渐逼近目标点,从而找到一条从起点到终点的可行...
RRT(Rapidly-Exploring Random Trees)算法详解及python实现 RRT(Rapidly-Exploring Random Trees)算法是一种常用的路径规划算法,主要应用于机器人、无人机、自动驾驶等领域。该算法的主要思想是通过随机采样来...
RRT(Rapidly-Exploring Random Trees)算法是一种在未知环境中进行机器人路径规划的常用方法,它在计算效率和路径质量之间找到了一个良好的平衡。本资料包包含一系列与RRT算法相关的MATLAB代码,旨在帮助理解并实现...
### 神经科学:探索大脑 #### 一、引言 《神经科学:探索大脑》(第三版)是一本全面介绍神经科学研究成果的专业教材,由马克·F·贝尔(Mark F. Bear)、巴里·W·康诺斯(Barry W. Connors)和迈克尔·A·帕拉...
在探讨CLIPDraw项目时,首先需要明确几个关键知识点。该项目基于语言-图像编码器进行文字到图画的合成探索,项目名称中的“CLIP”指的是“Contrastive Language-Image Pre-training”,即对比性语言-图像预训练模型...
Exploring the Limits of Weakly Supervised Pretraining是计算机视觉领域的一篇重要论文,主要探索了弱监督预训练的极限,使用了社交媒体平台上数十亿张图片的哈希标签数据对卷积神经网络进行大规模训练,并对图像...
原名: Beginning iOS 5 Development Exploring the iOS SDK 作者: David Mark Jack Nutting Jeff LaMarche 图书分类: 软件 资源格式: PDF 版本: 文字版 出版社: Apress 书号: 978-1-4302-3605-4 发行时间: 2011年12...