UVALive3516Exploring Pyramids(dp)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud
题目意思:有一棵多叉树,每个结点的子节点有左右之分(即要按照顺序查找),从跟结点开始遍历,尽量往左走,走不通就回溯,每到一个结点就记录下结点的信息,最终可以得到一个序列。
所要求的即为给定一个序列,有多少棵树与之对应。
dp[i][j]表示从序列的第i个到第j个所构成的分支的方案数,
边界情况为dp[i][i]=1;如果s[i]!=s[j],则dp[i][j]=0;
递推关系式为dp[i][j]=∑(dp[i+1][k-1]*dp[k][j]);i+2≤k≤j,s[i]=s[j]=s[k];
#include <iostream>
#include <cstring>
using namespace std;
string s;
long long dp[][];
const long long MOD=;
long long dfs(int i,int j)
{
if(i==j)return ;
if(s[i]!=s[j])return ;
if(dp[i][j]>=)return dp[i][j];
dp[i][j]=;
for(int k=i+;k<=j;k++)
{
if(s[i]==s[k])
dp[i][j]=(dp[i][j]+dfs(i+,k-)*dfs(k,j))%MOD;
}
return dp[i][j];
}
int main()
{
ios::sync_with_stdio(false);
while(cin>>s)
{
memset(dp,-,sizeof(dp));
cout<<dfs(,s.length()-)<<endl;
}
return ;
}
UVALive3516Exploring Pyramids(dp)的更多相关文章
- LightOJ 1033 Generating Palindromes(dp)
LightOJ 1033 Generating Palindromes(dp) 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid= ...
- lightOJ 1047 Neighbor House (DP)
lightOJ 1047 Neighbor House (DP) 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=87730# ...
- UVA11125 - Arrange Some Marbles(dp)
UVA11125 - Arrange Some Marbles(dp) option=com_onlinejudge&Itemid=8&category=24&page=sho ...
- 【POJ 3071】 Football(DP)
[POJ 3071] Football(DP) Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 4350 Accepted ...
- 初探动态规划(DP)
学习qzz的命名,来写一篇关于动态规划(dp)的入门博客. 动态规划应该算是一个入门oier的坑,动态规划的抽象即神奇之处,让很多萌新 萌比. 写这篇博客的目标,就是想要用一些容易理解的方式,讲解入门 ...
- Tour(dp)
Tour(dp) 给定平面上n(n<=1000)个点的坐标(按照x递增的顺序),各点x坐标不同,且均为正整数.请设计一条路线,从最左边的点出发,走到最右边的点后再返回,要求除了最左点和最右点之外 ...
- 2017百度之星资格赛 1003:度度熊与邪恶大魔王(DP)
.navbar-nav > li.active > a { background-image: none; background-color: #058; } .navbar-invers ...
- Leetcode之动态规划(DP)专题-详解983. 最低票价(Minimum Cost For Tickets)
Leetcode之动态规划(DP)专题-983. 最低票价(Minimum Cost For Tickets) 在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行.在接下来的一年里,你要旅行的 ...
- 最长公共子序列长度(dp)
/// 求两个字符串的最大公共子序列长度,最长公共子序列则并不要求连续,但要求前后顺序(dp) #include <bits/stdc++.h> using namespace std; ...
随机推荐
- poj3122 binary search 实数区间
Pie Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14536 Accepted: 4979 Special Ju ...
- IFS解惑
一.IFS 介绍 Shell 脚本中有个变量叫 IFS(Internal Field Seprator) ,内部域分隔符.完整定义是The shell uses the value stored in ...
- Ruby和Rails开发环境安装
更新包管理 sudo apt-get update 安装curl sudo apt-get install curl *安装rvm via curl \curl -L https://get.rvm. ...
- 高效的jQuery代码编写技巧总结
最近写了很多的js,虽然效果都实现了,但是总感觉自己写的js在性能上还能有很大的提升.本文我计划总结一些网上找的和我本人的一些建议,来提升你的jQuery和javascript代码.好的代码会带来速度 ...
- [转载]移动终端浏览器初始设置apple-mobile-web-app-capable
这两句话的确很有用,有了它,手机访问的时候像样了. 原文地址:移动终端浏览器初始设置apple-mobile-web-app-capable作者:素水凌心 移动终端浏览器默认设置视口的宽度和初始规模. ...
- 使用nRF51822/nRF51422创建一个简单的BLE应用 ---入门实例手册(中文)之五
5应用测试 需要一个USB dongle与开发板evaluation kit,并配合Master Control Panel软件,以用于测试BLE应用.前期的准备工作在<nRF51822 Eva ...
- Java笔记--java一行一行写入或读取数据
转自 Ruthless java一行一行写入或读取数据 链接:http://www.cnblogs.com/linjiqin/archive/2011/03/23/1992250.html 假如E:/ ...
- javax.net.ssl.SSLException: java.lang.UnsupportedOperationException
Loading KeyStore C:\Tool\jdk1.7.0_71\jre\lib\security\jssecacerts... Opening connection to www.googl ...
- linux下netstat命令详解
简介 Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Member ...
- Java 安装配置
1.下载 进入官方网站,点击下载链接进入下载页面,选择合适的版本(如,jdk-6u31-windows-i586.exe)下载. 2.安装 双击jdk-6u31-windows-i586.exe文件, ...