30分,求调!!!
查看原帖
30分,求调!!!
1692683
kaixin202416楼主2025/7/24 17:43
#include<bits/stdc++.h>
using namespace std;
int n;
string s,t;
long long ans=1;
void dfs(int l1,int l2,int r1,int r2)
{
	if (l1==r1)
		return ;
	int pos;
	for (int i=l2;i<=r2;i++)
		if (t[i]==s[l1+1])
			pos=i;
	if (pos==r2-1)
	{
		ans*=2;
		dfs(l1+1,r1,l2,r2-1);
		return ;
	}
	int lsz=pos-l2+1;
	dfs(l1+1,l1+lsz,l2,pos);
	dfs(l1+lsz+1,r1,pos+1,r2-1);
}
int main()
{
	cin>>s>>t;
	n=s.size();
	dfs(0,n-1,0,n-1);
	cout<<ans<<"\n";
	return 0;
}

提交结果

2025/7/24 17:43
加载中...