[JAVA] AtCoder Débutant Contest 132 D Problème

introduction

Cette fois, dans le problème ABC132_D du contenu AtCoder, le WA (réponse incorrecte) de ce que je pensais n'était pas couvert, et pourquoi la sortie était-elle incorrecte dans mon implémentation? Je l'ai posté parce que je voulais résoudre le problème fondamental. De plus, les exemples d'entrée 1 et 2 publiés dans le problème ont été supprimés.

Énoncé du problème (devis)

Page de référence: https://atcoder.jp/contests/abc132/tasks/abc132_d --- Début de la citation --- Il y a des boules bleues K et des boules rouges N-K. Les boules de la même couleur sont indiscernables. Sunuke et Takahashi jouent avec ces balles.

Tout d'abord, M. Sunuke arrange N boules d'affilée de gauche à droite.

Ensuite, M. Takahashi, parmi ceux-ci, K Ne récupérez qu'une seule boule bleue. Takahashi peut collecter autant de balles bleues qu'il le souhaite d'affilée en une seule opération. Takahashi agit toujours pour minimiser le nombre d'opérations nécessaires pour collecter K. boules bleues.

De combien de façons Takahashi peut-il organiser les balles dont Takahashi a besoin pour fonctionner exactement i fois pour collecter K balles bleues? 1 ≤ i ≤ K Satisfait i Calculez la réponse pour chacun et répondez au reste divisé par 10 ^ 9 + 7.

Contrainte 1≤K≤N≤2000

contribution L'entrée est donnée à partir de l'entrée standard dans le format suivant.

N K

production Sur la ligne i (1 ≤ i ≤ K), affichez le reste du nombre total de boules dont Takahashi a besoin pour fonctionner exactement i fois divisé par 10 ^ 9 + 7. --- Fin de citation ---

Mise en œuvre (jugement WA)

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

Je vous serais reconnaissant de bien vouloir signaler ce qui précède.

Recommended Posts

AtCoder Débutant Contest 132 D Problème
Concours AtCoder Débutant 168
AtCoder Beginner Contest 167 Problème C (Java)
Problème atcoder ABC70 D
Article sur la participation au concours AtCoder
Résolvez AtCoder Beginner Contest 151 avec Java
Résolvez AtCoder Beginner Contest 150 avec Java
Résolvez AtCoder Beginner Contest 153 avec Java
Résolvez AtCoder Beginner Contest 175 avec Java
Résolvez AtCoder Beginner Contest 152 avec Java
Résolvez AtCoder Beginner Contest 156 avec Java
AtCoder Beginner Contest 169 A, B, C avec rubis
Problème atcoder ABC113 C
problème atcoder ABC115 C
Résolution avec Ruby AtCoder ACL Débutant Contest C Union Find (DSU)
Apprendre Ruby avec AtCoder 6 [Concours 168 Donc]
[Débutant] Résolvons le problème d'AtCoder avec Ruby en regardant l'article!