1 条题解

  • 0
    @ 2025-12-21 11:33:06

    DP

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    const ll p=1e9;
    ll f[310][310];
    int main()
    {
    	string s;cin>>s;
    	int n=s.size();s=' '+s;
    	for(int i=1;i<=n;i++)f[i][i]=1;
    	for(int l=2;l<=n;l++)
    		for(int i=1;i+l-1<=n;i++)
    		{
    			int j=i+l-1;
    			for(int k=i;k<=j;k++)if(s[i]==s[k])
    				f[i][j]=(f[i][j]+f[i+1][k-1]*f[k][j])%p;
    		}
    	cout<<f[1][n];
    }
    
    • 1

    0x50 动态规划(0x53 区间DP)例题3:金字塔

    信息

    ID
    1371
    时间
    1000ms
    内存
    64MiB
    难度
    4
    标签
    递交数
    70
    已通过
    32
    上传者