|
du熊填数字 Time Limit: 3000/2000 MS (C/Others) Memory Limit: 65536/32768 K (C/Others)
5 r! j8 k F: Z本次组委会推荐使用C、C++ Problem Description2 z; }2 u3 c0 M: v5 c
( x; g; w2 m9 X8 y3 v9 l9 v du熊这几天使劲的往一个n 行n列的矩阵填0和1这两个数字,n为偶数,而且矩阵由里向外分成了n / 2层。比如n = 6时,矩阵的分层如下:9 Q& T* a$ I T. `( }
du熊填数时有一个要求:不能存在两个相邻的1,且位于不同的层(这里的相邻指两格子共用一条线)。8 n: Z3 q% H6 p3 H. E$ \+ P
请你帮du熊计算一下有多少种填法。
! o/ R5 P# n- N: o1 p; AInput- p# k! L% r( i4 t9 R
6 W8 B0 N( U; n% o" M8 n 输入包含多组测试数据,每组数据包含一个偶数n (2 <= n <= 500)。
6 B# M+ \$ }1 y9 y5 pOutput
! L$ u4 x e, k: Q( G9 `9 |) `" N) P& w, w7 v
请计算并输出对2012取余后的结果。$ c# R, Z ~1 ?4 F$ _
) x, o- \/ {' q9 ?; d' ]
Sample Input
1 C# K8 E1 y: S4 R) b m2 O1 u, t4 I* D8 e* w5 e
2$ C# p2 t4 R- P' m' O* U
4
9 ~ T. }5 {. _# \% {7 E6 E8 LSample Output
' M* S. Z& I9 u; o16! f7 h% n5 D2 R r
1952* _4 @8 A% G. c* T4 v% M
6 `! U" r4 Z/ A1 ~8 O: o+ l
Hint S2 _; z# f$ ]# G
当n = 4时
3 ^) @/ L, [; J1 F6 t" y3 Z0 w5 [* ]& D. p U8 t
1011
+ h1 z' m/ R; ^0 _- a% h$ c p0100- y; k* D+ \: U. |
0100
1 g4 p2 m5 M/ {8 I0000
" Y3 E; X+ D! T( D/ S* r* `% O6 ]+ h是满足要求的) ?5 X5 i5 U1 X' R5 F; x p
+ h) b! P$ x3 g1111
, y9 z7 {6 }2 Z4 u @. ~& j. F0100
8 {5 t- k# n( ~% Y7 x* Z0100
0 Q5 e2 ~) V& q, o: D0000' q2 X8 g" ]9 ~ s5 @( |
是不满足要求的,因为第一行第二列的1和第二行第二列的1相邻且位于不同的层。
6 Y! \$ [5 ^+ u5 H: c
$ y# k1 ^/ n' p0 _
& I5 ~! T5 f* Z2 |: G9 G |