AC

虚空终端  •  29天前


Fucking Compile Error

显然当且仅当前序遍历为 "a_1a_2",后序遍历为 "a_2a_1" 时中序遍历有两种 "a_1a_2""a_2a_1"

于是每当两个序列(命名为 front,back)存在 k 组不同的 i,j,使

front[i]==back[j]且front[i+1]==back[j-1] 时,总情况数为 2^k

注意边界问题,还有 long long~~

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>

using namespace std;

string front,back;

int main()
{
	cin>>front>>back;
	int res=0;
	int n=front.size(),m=back.size();
	for(int i=0;i<n-1;i++)
		for(int j=1;j<m;j++)
			if(front[i]==back[j]&&front[i+1]==back[j-1])
				res++;
	cout<<(long long)pow(2,res);
	return 0;
}

评论:

请先登录,才能进行评论