30分的O(m^2)做法应该比较容易想到:令f[i][j]表示i->j是否有解,然后把每个路径点数不超过2的有解状态(u,v)加入队列,然后弹出队列时,两点分别向两边搜索边,发现颜色一样时,再修改答案,加入队列即可. 100分是挺难想的,是个思维题,可以把边分成连接同色和异色两种.发现走过的路径一定是若干同色连通块拼接而成,除了中间的连通块外,其余长度均相等.对于长度,如果短,可以反复走把长度走到相等,重点是奇偶性要相同.所以,我们能够联想和二分图有关的东西.异色连通块,很显然是二分图,于是我们…