Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
42109 黄子睿 【S】T4 C++ 通过 100 234 MS 488764 KB 942 2026-06-13 14:26:52

Tests(10/10):


#include<bits/stdc++.h> using namespace std; const long long mod=998244353; const int N=1e5+10; const int M=25; string s,s1,s2; int len,len1,len2; long long dp[N][M][M]; long long ans; int main(){ cin>>s>>s1>>s2; len=s.length(); len1=s1.length(); len2=s2.length(); s=' '+s; s1=' '+s1; s2=' '+s2; dp[0][0][0]=1; for(int i=1;i<=len;i++){ dp[i][0][0]=i+1; for(int j=0;j<=len1;j++){ for(int k=0;k<=len2;k++){ if(j==0&&k==0) continue; dp[i][j][k]=dp[i-1][j][k]; if(s[i]==s1[j]) dp[i][j][k]+=dp[i-1][j-1][k]; if(s[i]==s2[k]) dp[i][j][k]+=dp[i-1][j][k-1]; if(s[i]==s1[j]&&s[i]==s2[k]) dp[i][j][k]+=dp[i-1][j-1][k-1]; dp[i][j][k]%=mod; } } ans+=dp[i][len1][len2]; ans%=mod; } printf("%lld",ans); return 0; }


测评信息: