Résolvez AtCoder Beginner Contest 160 avec Java

AtCoder Beginner Contest 160 Merci pour votre travail acharné! Page officielle

Le code que j'ai écrit cette fois est ici Le résultat était AC jusqu'à A-E. 5 questions après une longue période ca va augmenter votre tension ^^

Je vais vous expliquer brièvement ci-dessous.

Problème A

Puisqu'une chaîne de 6 caractères est passée en argument, String.charAt() Ce n'est pas grave si vous retirez le caractère du caractère spécifié et le comparez.

Problème B

Le problème est que vous recevez un montant et que vous l'échangez correctement contre des pièces de 500 yens et des pièces de 5 yens. Le résultat de la réponse est «joie», et si vous avez une pièce de 500 yens, vous obtiendrez 1000 joie, alors faites attention à ne pas doubler le montant donné. En outre, veuillez noter que simplement parce que la joie de 5 est incluse dans la pièce de 5 yens, il ne suffit pas d'ajouter simplement le montant de l'excédent.

long happy = (x / 500) * 1000;
x = x % 500;
happy = happy + (x / 5) * 5;

J'ai pu AC comme ça.

Problème C

Une maison est construite autour de l'étang, vous donnant une distance d'un certain point. Il s'agit de trouver la distance minimale pour faire le tour de chaque maison.

Cette fois-ci, la maison est construite autour d'un étang, donc l'itinéraire réel devrait ressembler à un gars de test de vision. La forme est comme un petit cercle. Par conséquent, si vous pouvez trouver la distance la plus éloignée entre les maisons, vous pouvez calculer la distance minimale en soustrayant cette distance de la circonférence extérieure de l'étang.

En gros, rappelez-vous la distance de la maison précédente et calculez-la chaque fois que vous y entrez. La première maison et la dernière sont également côte à côte, alors n'oubliez pas de les comparer.

Problème D

C'est un problème de sortir combien de graphes non orientés avec N sommets ont une distance de k. J'ai peur d'utiliser des graphiques non dirigés ou d'autres mots difficiles, mais ce graphique est simple.

Au mieux, il n'y a que deux voies, soit aller directement, soit prendre la route entre X et Y.

Même si vous pensez que TLE est susceptible de se produire, vous pouvez être assuré de voir ce qui suit.

3 ≤ N ≤ 2 × 10^3

Exprimé en code, cela ressemble à ceci: Dans une boucle double for, je calcule ce qui est le plus proche, en allant directement ou en passant entre X et Y, et je l'ajoute au tableau de réponses.

for (int i = 1; i <= n; i++) {
	for (int j = i; j <= n; j++) {
		int direct = j - i;
		int shortCut = dist(i, x) + 1 + dist(j, y);
		int dist = Math.min(direct, shortCut);
		answer[dist]++;
	}
}

Une méthode appelée dist Cela ressemble à ce qui suit.

public static int dist(int p, int q) {
	return Math.max(q - p, p - q);
}

Problème E

Mangez X pommes rouges et Y pommes vertes. Étant donné la saveur délicieuse des pommes rouges et la saveur délicieuse des pommes vertes, mangez pour maximiser la saveur. Il existe également une pomme incolore, qui peut être colorée.

Je l'ai résolu avec l'algorithme suivant.

--Arranger les pommes rouges et vertes par ordre de délices

Donc, j'ai pu AC en toute sécurité. Je pense que la raison de la victoire était que j'ai pu ajouter les pommes incolores au tableau APPLE.

Personnellement, le niveau de difficulté est faible dans le problème E ...?

Problème F

Après avoir réfléchi environ 5 minutes, je n'ai pas pu le faire, donc j'étais absent les 20 minutes restantes lol


Impressions

Performance de l'eau (1411) pour la première fois depuis longtemps La cote est de 936 → 1003, ce qui est la première fois à dépasser 1000! !! : rougir:

Le problème E était un peu simple, mais je suis content d'avoir réussi à le résoudre ... Je veux m'en tenir à l'AC de A-E et le stabiliser. Si vous pouvez le faire, vous devriez bientôt pouvoir devenir un nom d'eau! : mains levées:

Merci d'avoir lu jusqu'au bout!

Recommended Posts

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 160 avec Java
Résolvez AtCoder Beginner Contest 152 avec Java
Résolvez AtCoder Beginner Contest 156 avec Java
Concours AtCoder Débutant 168
AtCoder Beginner Contest 167 Problème C (Java)
Article sur la participation au concours AtCoder
AtCoder Débutant Contest 132 D Problème
java débutant 4
java débutant 3
java débutant
Concours de programmation AtCoder dwango B à résoudre en Ruby, Perl et Java
AtCoder ARC 081 C hash à résoudre en Ruby, Perl et Java
Essayez de résoudre Project Euler en Java
Partition en Java
Changements dans Java 11
Tri par hachage AtCoder ABC 111 C résolu en Ruby, Perl et Java
Janken à Java
Exercices pour les débutants Java
Taux circonférentiel à Java
FizzBuzz en Java
Exercice Java "Débutant"
AtCoder Beginner Contest 169 A, B, C avec rubis
[AtCoder Problem-ABC001] Observation du vent C-Do en Java [Code]
Comment résoudre les problèmes d'expression en Java
[Débutant] Installez l'outil de développement java dans l'environnement de développement cloud9.
L'histoire d'un super débutant participant pour la première fois au concours AtCoder (AtCoder Beginner Contest 140)
Lire JSON en Java
Implémentation de l'interpréteur par Java
Faites un blackjack avec Java
Application Janken en Java
Programmation par contraintes en Java
Mettez java8 dans centos7
NVL-ish guy en Java
Joindre des tableaux en Java
"Hello World" en Java
Il est tard! Essayez d'implémenter la notification Android en Java (débutant)
Commentaires dans la source Java
Fonctions Azure en Java
Formater XML en Java
Simple htmlspecialchars en Java
Implémentation Boyer-Moore en Java
Hello World en Java
Utiliser OpenCV avec Java
Détermination de type en Java
Divers threads en java
Implémentation du tri de tas (en java)
API Zabbix en Java
Art ASCII à Java
Comparer des listes en Java
POST JSON en Java
Exprimer l'échec en Java
Essayez de résoudre un problème FizzBuzz restreint en Java
Créer JSON en Java
Manipulation de la date dans Java 8
Nouveautés de Java 8