码迷,mamicode.com
首页 > 其他好文 > 详细

Gym - 101334E 多叉树遍历

时间:2017-06-03 18:16:59      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:ges   scan   div   hid   没有   logs   one   字符串   树遍历   

技术分享

 

题意:给定一个字符串,求有多少种树与之对应,对应方式是,每次遍历左节点,没有了,就回溯;

 

分析:d[i,j] = sum(d[i+1,k-1],d[k,j]) (str[i]==str[k]);

坑点是数组竟然要long long 不然会超时,神奇;

技术分享
 1 #include <bits/stdc++.h>
 2 
 3 using namespace std;
 4 
 5 const int maxn = 300+5;
 6 const int mod = 1000000000;
 7 char str[maxn];
 8 int d[maxn][maxn];
 9 
10 
11 int dp(int i,int j) {
12     if(i==j) return 1;
13     if(str[i]!=str[j]) return 0;
14     int& ans = d[i][j];
15     if(ans>=0) return ans;
16     ans = 0;
17 
18     for(int k=i+2;k<=j;k++) {
19         if(str[i]==str[k]) {
20             ans = (ans + (long long)dp(i+1,k-1)*(long long)dp(k,j)) % mod;
21         }
22     }
23     return ans;
24 }
25 
26 int main()
27 {
28     freopen("exploring.in","r",stdin);
29     freopen("exploring.out","w",stdout);
30     while(scanf("%s",str)!=EOF) {
31         memset(d,-1,sizeof(d));
32         printf("%d\n",dp(0,strlen(str)-1));
33     }
34     return 0;
35 }
View Code

 

Gym - 101334E 多叉树遍历

标签:ges   scan   div   hid   没有   logs   one   字符串   树遍历   

原文地址:http://www.cnblogs.com/TreeDream/p/6937997.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!