This time, in the ABC132_D problem of the AtCoder content, the WA (incorrect answer) of what I thought was not covered, and why was the output incorrect in my implementation? I posted it because I wanted to solve the fundamental problem. In addition, the input examples 1 and 2 posted in the problem have been cleared.
Quote page: https://atcoder.jp/contests/abc132/tasks/abc132_d --- Start quoting --- There are K blue balls and N-K red balls. Balls of the same color are indistinguishable. Sunuke and Takahashi are playing with these balls.
First, Sunuke arranges N balls in a row from left to right.
Next, Mr. Takahashi, of these, K Collect only one blue ball. Takahashi can collect as many blue balls as he wants in a row with a single operation. Takahashi always acts to minimize the number of operations required to collect K blue balls.
How many ways can Takahashi arrange the balls that he needs to operate exactly i times to collect K blue balls? Calculate the answer for each of 1 ≤ i ≤ K and answer the remainder divided by 10 ^ 9 + 7.
Constraint 1≤K≤N≤2000
input Input is given from standard input in the following format.
N K
output On line i (1 ≤ i ≤ K), output the remainder of the total number of ball arrangements that Takahashi needs to operate exactly i times divided by 10 ^ 9 + 7. --- End of quote ---
Main.java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int K = sc.nextInt();
sc.close();
for(int i = 1;i <= K;i++) {
long combi1 = combination(N-K+1,i);
long combi2 = combination(K-1,i-1);
System.out.println(combi1*combi2%1_000_000_007);
}
}
public static long combination(int i,int j) {
if(j==0) {
return 1;
}
return combination(i-1,j-1)* i / j;
}
}
I would be grateful if you could point out the above.
Recommended Posts