[JAVA] AtCoder Anfängerwettbewerb 132 D Problem

Einführung

Diesmal wurde im ABC132_D-Problem des AtCoder-Inhalts die WA (falsche Antwort) dessen, was ich für nicht abgedeckt hielt, und warum war die Ausgabe in meiner Implementierung falsch? Ich habe es gepostet, weil ich das grundlegende Problem lösen wollte. Außerdem wurden die im Problem veröffentlichten Eingabebeispiele 1 und 2 gelöscht.

Problemstellung (Zitat)

Referenzseite: https://atcoder.jp/contests/abc132/tasks/abc132_d --- Beginn des Zitierens --- Es gibt K blaue Kugeln und N-K rote Kugeln. Kugeln der gleichen Farbe sind nicht zu unterscheiden. Sunuke und Takahashi spielen mit diesen Bällen.

Zuerst ordnet Herr Sunuke N Bälle in einer Reihe von links nach rechts an.

Als nächstes Herr Takahashi von diesen, K. Sammle nur eine blaue Kugel. Takahashi kann mit einer einzigen Operation so viele blaue Kugeln hintereinander sammeln, wie er möchte. Takahashi minimiert immer die Anzahl der Operationen, die zum Sammeln von K blauen Kugeln erforderlich sind.

Auf wie viele Arten kann Takahashi die Bälle anordnen, die Takahashi benötigt, um genau i-mal zu arbeiten, um K blaue Bälle zu sammeln? 1 ≤ i ≤ K Erfüllen i Berechnen Sie die Antwort für jede und beantworten Sie den Rest geteilt durch 10 ^ 9 + 7.

Zwang 1≤K≤N≤2000

Eingang Die Eingabe erfolgt über die Standardeingabe im folgenden Format.

N K

Ausgabe Geben Sie in Zeile i (1 ≤ i ≤ K) den Rest der Gesamtzahl der Kugelanordnungen aus, die Takahashi benötigt, um genau i-mal geteilt durch 10 ^ 9 + 7 zu arbeiten. --- Ende des Zitats ---

Umsetzung (WA-Urteil)

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;
	}
}

Ich wäre Ihnen dankbar, wenn Sie darauf hinweisen könnten.

Recommended Posts

AtCoder Anfängerwettbewerb 132 D Problem
AtCoder Anfängerwettbewerb 168
AtCoder Anfängerwettbewerb 167 C Problem (Java)
Atcoder ABC70 D Problem
AtCoder Beginner Contest 182 Teilnahmeartikel
Löse den AtCoder-Anfängerwettbewerb 151 mit Java
Löse den AtCoder Beginner Contest 150 mit Java
Löse den AtCoder-Anfängerwettbewerb 153 mit Java
Löse den AtCoder-Anfängerwettbewerb 175 mit Java
Löse den AtCoder-Anfängerwettbewerb 152 mit Java
Löse den AtCoder-Anfängerwettbewerb 156 mit Java
AtCoder Anfängerwettbewerb 169 A, B, C mit Rubin
atcoder ABC113 C Problem
atcoder ABC115 C Problem
Lösen mit Ruby AtCoder ACL Anfängerwettbewerb C Union Find (DSU)
Ruby mit AtCoder 6 lernen [Contest 168 Daher]
[Anfänger] Lösen wir das AtCoder-Problem mit Ruby, während wir uns den Artikel ansehen!