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