考虑x+y长度的字符串被分成了n块1、n=2k那么一定是k块为a,k块为b,考虑把长度为x的字符串分成k块,也就是x-1个空隙插入k-1个隔板,方案是C(x-1, k-1)。长度为y的字符串分成k块同理,然后可以先是a也可以先是b,所以答案是2*C(x-1, k-1)*C(y-1, k-1)2、n=2k+1那么可能是k+1块a,k块b或者反过来,思路类似上面算出方案数 #include <iostream> #include <vector> using namespace std; const int mod=1000000007; vector<int>...