枚举每个点两边能到达的最远处,此题有单调栈 的写法,自己写的  写法.
可以发现放01和放23是独立的,所以可以选择先放01,再放23,枚举01放几个(至少两个,最多n-2个)的方案数,将所有方案累加起来即可设当前0,1放k个,则在n-1个位置(最高位不为0)中挑出k个放0,1,然后0,1内部有k-1种放法,同理2,3有(n-k-1)种放法,所以放k个0,1的方案数就是:
可以从起点出发看能到达哪些点,标记一遍.从终点出发看能到达哪些点,标记一遍.条件是满足从起点出发被标记过,从终点出发没被标记过.
注意:从终点往外走时,能走的点Q,满足Q能走到当前点,因为是反向边.