比赛 |
2024国庆练习3 |
评测结果 |
RRRRRRRRRR |
题目名称 |
金字塔 |
最终得分 |
0 |
用户昵称 |
徐诗畅 |
运行时间 |
6.016 s |
代码语言 |
C++ |
内存使用 |
3.49 MiB |
提交时间 |
2024-10-06 16:18:05 |
显示代码纯文本
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod=1e9;
char ch[305];
int n,dp[305][305];
int dfs(int l,int r){
if(l>r) return 0;
if(l==r) return 1;
if(ch[l]!=ch[r]) return 0;
if(dp[l][r]) return dp[l][r];
for(int k=l+2;k<=r;k++) dp[l][r]=(dp[l][r]+dfs(l+1,k-1)*dfs(k,r))%mod;
return dp[l][r];
}
signed main(){
freopen("ZYH.in","r",stdin);
freopen("ZYH.in","w",stdout);
cin>>(ch+1); n=strlen(ch+1);
for(int i=1;i<=n;i++){
if(ch[i]!=ch[1]) dp[i][i]=1;
}
printf("%lld",dfs(1,n));
return 0;
}