虚空终端 • 1个月前
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;
}
评论:
请先登录,才能进行评论