直接入手似乎有些困难,不妨将原问题作一点转化:输出第i种特定序列的方案数a[i]即为二元组(X, Y)(其中X, Y分别代表一种输出第i种序列的方式,且X与Y相互独立)的组数。设X所对应的方案为(ix, jx)(从上管道取出了ix个,从下管道取出了jx个),Y所对应的方案为(iy, jy)(含义类似于ix, jx)。于是,可以用状态f[ix][jx][iy][jy]作一下更新: 1) 若上管道的第(ix + 1)个小球和上管道的第(iy + 1)个小球,那么更新状态f[ix + 1][jx][iy + 1][jy]; 2) 若上管道的第(ix + 1)个小球和下管道的第(jy + 1)个小球...