File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed
Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change 1+ ``` java
2+ import java.util.* ;
3+ import java.io.* ;
4+
5+ public class Solution {
6+ public static void main (String [] args ) throws Exception {
7+ BufferedReader br = new BufferedReader (new InputStreamReader (System . in));
8+ StringTokenizer st = new StringTokenizer (br. readLine());
9+
10+ int T = Integer . parseInt(st. nextToken());
11+ int [] N = new int [T ];
12+ int maxN = 0 ;
13+ for (int tc = 0 ; tc < T ; tc++ ) {
14+ st = new StringTokenizer (br. readLine());
15+ N [tc] = Integer . parseInt(st. nextToken());
16+ maxN = Math . max(maxN, N [tc]);
17+ }
18+ long [] dp = new long [maxN+ 1 ];
19+ dp[2 ] = 1 ;
20+ for (int i = 3 ; i <= maxN; i++ ) {
21+ long total = 1 ;
22+ long minus = 0 ;
23+ long divide = 1 ;
24+ for (int j = i; j > 2 ; j-- ) {
25+ total *= j;
26+ divide *= (i- j+ 1 );
27+ minus += total* dp[j- 1 ]/ divide;
28+ }
29+ dp[i] = total* 2 - (minus+ 1 );
30+ }
31+ for (int i = 0 ; i < T ; i++ ) {
32+ System . out. println(dp[N [i]]);
33+ }
34+ }
35+ }
36+ ```
You can’t perform that action at this time.
0 commit comments