File tree Expand file tree Collapse file tree 1 file changed +45
-0
lines changed
Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Original file line number Diff line number Diff line change 1+ ``` java
2+ import java.io.* ;
3+ import java.util.* ;
4+
5+ public class Main {
6+ static BufferedReader br = new BufferedReader (new InputStreamReader (System . in));
7+ static BufferedWriter bw = new BufferedWriter (new OutputStreamWriter (System . out));
8+ static StringTokenizer st;
9+ static int N ;
10+ static int [][][] dp;
11+ static int MOD = 1000000000 ;
12+
13+ public static void main (String [] args ) throws IOException {
14+ N = Integer . parseInt(br. readLine());
15+ // dp[자릿수][끝자리수][포함관계]
16+ dp = new int [N + 1 ][10 ][1024 ];
17+ for (int i = 1 ; i <= 9 ; i++ ) {
18+ dp[1 ][i][1 << i] = 1 ;
19+ }
20+
21+ for (int i = 2 ; i <= N ; i++ ) {
22+ for (int j = 0 ; j <= 9 ; j++ ) {
23+ for (int k = 0 ; k < (1 << 10 ); k++ ) {
24+ if (j> 0 && dp[i- 1 ][j- 1 ][k] > 0 ){
25+ dp[i][j][k | 1 << j] += dp[i- 1 ][j- 1 ][k];
26+ dp[i][j][k | 1 << j] %= MOD ;
27+ }
28+ if (j< 9 && dp[i- 1 ][j+ 1 ][k] > 0 ){
29+ dp[i][j][k | 1 << j] += dp[i- 1 ][j+ 1 ][k];
30+ dp[i][j][k | 1 << j] %= MOD ;
31+ }
32+ }
33+ }
34+ }
35+ int sum = 0 ;
36+ for (int i = 0 ; i <= 9 ; i++ ) {
37+ sum += dp[N ][i][1023 ];
38+ sum %= MOD ;
39+ }
40+ bw. write(sum + " \n " );
41+ bw. close();
42+ }
43+
44+ }
45+ ```
You can’t perform that action at this time.
0 commit comments