Gym 101334E dp
2024-09-07 07:47:54
分析:
这一题给出的遍历的点的序列,不是树的中序遍历,前序遍历,只要遇到一个节点就打印一个节点。关键点就在,这个序列的首字母和尾字母一定要相同,因为最终都会回到根节点,那么每一个子树也一样。
状态:
d[i][j]表示i至j的状态数
d[i][j]= d[i][j]=(d[i][j]+dp(i,k)*dp(k+1,j-1)%mod)%mod;
#include <bits/stdc++.h>
using namespace std; typedef long long ll;
const int maxn=300+5;
const ll mod=1e9;
char s[maxn];
ll d[maxn][maxn]; ll dp(int i,int j)
{
if(i>j) return 0;
if(d[i][j]!=-1) return d[i][j];
if(s[i]!=s[j]) return d[i][j]=0;
if(i==j) return d[i][j]=1;
d[i][j]=0;
for(int k=i;k<j;k++)
d[i][j]=(d[i][j]+dp(i,k)*dp(k+1,j-1)%mod)%mod;
return d[i][j];
} int main()
{
freopen("exploring.in","r",stdin);
freopen("exploring.out","w",stdout);
while(~scanf("%s",s))
{
memset(d,-1,sizeof(d));
printf("%I64d\n",dp(0,strlen(s)-1));
}
return 0;
}
最新文章
- centos6字符
- FORTRAN 90标准函数(一) (转)
- Oracle常用的性能诊断语句
- protobuf C++ 使用示例
- Nginx文件类型错误解析漏洞--攻击演练
- 使用xib封装一个自定义view的步骤
- hdu 3311 斯坦纳树
- hadoop2.2编程:hadoop性能测试
- 【Oracle】不安装Oracle客户端直接用PL/SQL连接数据库
- windbg内存查看(d*)
- Zabbix自动发现监控Tomcat进程
- 企业级数据库监控利器Lepus
- 【UER #8】雪灾与外卖
- python - str和repr方法:
- memcached 和redis比较
- GoldNumber游戏比赛成绩公布
- SSM-CRUD实战
- arduino 编程基础
- java.awt.Graphics2D 图片缩放
- INDEX--索引相关信息查看