提交时间:2026-06-13 15:02:10
运行 ID: 42118
#include<bits/stdc++.h> using namespace std; string s,s1,s2; long long n,l1,l2,sum,md=998244353,dp[100005][25][25]; int main(){ cin>>s>>s1>>s2; n=s.length(); l1=s1.length(); l2=s2.length(); s=" "+s; s1=" "+s1; s2=" "+s2; for(int i=1;i<=n;i++){ dp[i-1][0][0]=i; for(int a1=0;a1<=l1;a1++){ for(int a2=0;a2<=l2;a2++){ dp[i][a1][a2]=dp[i-1][a1][a2]; if(s[i]==s1[a1]){ dp[i][a1][a2]+=dp[i-1][a1-1][a2]; } if(s[i]==s2[a2]){ dp[i][a1][a2]+=dp[i-1][a1][a2-1]; } if(s[i]==s1[a1] && s[i]==s2[a2]){ dp[i][a1][a2]+=dp[i-1][a1-1][a2-1]; } dp[i][a1][a2]%=md; } } sum+=dp[i][l1][l2]; sum%=md; } printf("%lld",sum); }