以后题解争取能一两句话
T1
$ O(n^2) $枚举两个串开始位置,$ O(n) $ 验证
T2
40分:暴力dfs
70分:$ O(n^3) $ DP
设f[k][i][j]为i到j长度为k的路径条数
f[2][i][j]=f[1][i][k]&f[1][k][j];
ans+=f[2][i][j]*f[1][j][k]-f[1][i][k];
100分:bitset优化即可
T3
新建2^20个点,每个点向比他少一个1的点连边,1到n向val[i]连双向边,跑一边bfs
注意长度为0的一些边要顺便加进去保证队列里的长度不降