题目大意:
可以将两个集合A,B合并成一个超集合C,条件如下:
1.max(A(),B())=的个数
2..
求超集合C的种类数
例如:{1,2}{}={1,2};
{1,3}{2,4}={1,2,3,4};
而{1,3}{4}则不合法
所以转换成从i开始有多少段最多段数为2的区间。
用num记录段数
因此首先记录坐标,以遍历vis[i]=1;
若vis[p[i]-1]&&vis[p[i]+1]则说明用p[i]将两段进行连接,num--
若vis[p[i]-1]||vis[p[i]+1]则段数不变
其他情况则需另外开辟一段空间,num++;
每次遍历之后如果num<=2则ans++;
复杂度n^2
用bitset记录开辟情况