比赛 2024国庆练习3 评测结果 AAAAAAAAAA
题目名称 金字塔 最终得分 100
用户昵称 wdsjl 运行时间 0.113 s
代码语言 C++ 内存使用 3.98 MiB
提交时间 2024-10-06 14:42:27
显示代码纯文本
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int p = 1e9;
  5. const int N = 1010;
  6.  
  7. char s[N];
  8. long long f[N][N];
  9.  
  10. int main(){
  11. freopen("ZYH.in","r",stdin);
  12. freopen("ZYH.out","w",stdout);
  13. cin>>(s+1);
  14. int n=strlen(s+1);
  15. for(int i=1;i<=n;i++){
  16. f[i][i]=1;
  17. }
  18. for(int len=2;len<=n;len++){
  19. for(int i=1;i<=n-len+1;i++){
  20. int j=i+len-1;
  21. if(s[i]!=s[j])continue;
  22. for(int k=i;k<j;k++){
  23. f[i][j]=max(f[i][j],f[i][j]+(s[i]==s[k])*f[i][k]*f[k+1][j-1]%p)%p;
  24. }
  25. }
  26. }
  27. printf("%lld",f[1][n]);
  28. return 0;
  29. }