時間制限:
1000のミリ秒のメモリ制限: 65536キロバイトの詳細な制限
1つの#include <ビット/ STDC ++ H> 2 使用して 名前空間STDを、 3 int型の MOD = 2009 ; 4 int型N、T。 5 構造体PP { 6 int型 M [ 115 ] [ 115 ]。 7 }。 8 int型のC; 9 インラインPPのMUL(PPのB、PPのC) 10 { 11 のPP T。 12 のために(int型 i = 1 ; iが= < 10 ; * nはI ++ ) 13 のための(INT J =1 ; J <= 10 * N; J ++ ){ 14 TM [I] [J] = 0 ; 15 のための(int型のk = 1 ; K <= 10 * N; kは++ ){ 16 TM [I] [J] =(TM [I] [J] +(BM [I] [K] * cmの[K] [ J])%のMOD)%MOD。 17 } 18 } 19 リターンT。 20 } 21インラインINT高速(INT X) 22 { 23 頁ANS = 。 24 頁の基地 = 。 25 一方、(X) 26 { 27 であれば(X&1)ANS = MUL(ANS、塩基)。 28 塩基 = MUL(ベース、ベース)。 29 X = X >> 1 。 30 } 31 リターン ans.m [ 1 ] [N]; 32 } 33 のint main()の 34 { 35 CIN >> N >> T。 36 のために(int型 i = 1 ; iが<= N iが++ ) 37 { 38 用(INTの J = 1 ; J <= 8 ; J ++ ) 39 AM [iが+ J×n個] [I +(J- 1)* N] = 1 。 40 のために(INT J = 1 ; J <= N; J ++ ) 41 { 42 のscanf(" %の1D "、&C) 43 AM [I] [J + N *(C- 1)] = 1 。 44 } 45 } 46 COUT <<速い(T- 1 )。 47 リターン 0; 48 }