问题 F: [Shoi2013]超级跳马
时间限制: 1 Sec 内存限制: 256 MB
题目描述
现有一个n行m列的棋盘,一只马欲从棋盘的左上角跳到右下角。每一步它向右跳奇数列,且跳到本行或相邻行。跳越期间,马不能离开棋盘。例如,当n = 3, m = 10时,下图是一种可行的跳法。
试求跳法种数mod 30011。
输入
仅有一行,包含两个正整数n, m,表示棋盘的规模。
输出
仅有一行,包含一个整数,即跳法种数mod 30011。
样例输入
3 5
样例输出
10
提示
对于100%的数据,1 ≤ n ≤ 50,2 ≤ m ≤ 10^9
看数据范围就知道是矩阵乘。。。
转移是要分奇数列和偶数列的,但实际上并没有那么麻烦。
对于这个方格
红格的方案应该从所有的黄格转移过来的,可以发现,蓝格其实是其他黄格的前缀和。所以红格方案数=靠近自己的三个黄格方案数+两排前对应那个格的方案数。
因此只要记录两列的方案数即可。转移矩阵