Löse den AtCoder-Anfängerwettbewerb 160 mit Java

AtCoder Beginner Contest 160 Vielen Dank für Ihre harte Arbeit! Offizielle Seite

Der Code, den ich dieses Mal geschrieben habe, ist hier Das Ergebnis war Wechselstrom bis A-E. 5 Fragen nach langer Zeit AC wird Ihre Spannung erhöhen ^^

Ich werde unten kurz erklären.

Problem A

Da eine 6-stellige Zeichenfolge als Argument übergeben wird, String.charAt() Es ist in Ordnung, wenn Sie das Zeichen des angegebenen Zeichens mit herausnehmen und vergleichen.

Problem B

Das Problem ist, dass Sie einen Betrag erhalten und ihn ordnungsgemäß gegen 500-Yen-Münzen und 5-Yen-Münzen eintauschen. Die Ausgabe der Antwort lautet "Freude". Wenn Sie eine 500-Yen-Münze haben, erhalten Sie 1000 Freude. Achten Sie also darauf, den angegebenen Betrag nicht zu verdoppeln. Bitte beachten Sie auch, dass es nicht ausreicht, nur den Überschussbetrag hinzuzufügen, nur weil die Freude von 5 in der 5-Yen-Münze enthalten ist.

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

Ich konnte so AC.

Problem C

Um den Teich herum wird ein Haus gebaut, das Ihnen einen Abstand zu einem bestimmten Punkt bietet. Es geht darum, den Mindestabstand zu finden, um jedes Haus zu umgehen.

Das Haus ist diesmal um einen Teich herum gebaut, daher sollte die eigentliche Route wie ein Sehtest aussehen. Die Form ist wie ein kleiner Kreis. Wenn Sie also den weitesten Abstand zwischen den Häusern finden, können Sie den Mindestabstand berechnen, indem Sie diesen Abstand vom Außenumfang des Teichs abziehen.

Denken Sie grundsätzlich an die Entfernung des vorherigen Hauses und berechnen Sie diese bei jedem Betreten. Das erste und das letzte Haus liegen ebenfalls nebeneinander. Vergessen Sie also nicht, sie zu vergleichen.

Problem D

Es ist ein Problem, auszugeben, wie viele ungerichtete Graphen mit N Eckpunkten einen Abstand von k haben. Ich habe Angst, ungerichtete Grafiken oder andere schwierige Wörter zu verwenden, aber diese Grafik ist einfach.

Bestenfalls gibt es nur zwei Möglichkeiten, entweder direkt oder auf der Straße zwischen X und Y.

Selbst wenn Sie der Meinung sind, dass TLE wahrscheinlich auftritt, können Sie sicher sein, dass Sie Folgendes sehen.

3 ≤ N ≤ 2 × 10^3

Im Code ausgedrückt sieht es so aus: In einer Double-for-Schleife berechne ich, welche näher ist, gehe direkt oder zwischen X und Y hin und her und füge sie dem Array von Antworten hinzu.

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

Eine Methode namens dist Es sieht folgendermaßen aus.

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

Problem E

Iss X rote Äpfel und Y grüne Äpfel. Angesichts der Köstlichkeit von roten Äpfeln und der Köstlichkeit von grünen Äpfeln essen, um die Köstlichkeit zu maximieren. Es gibt auch einen farblosen Apfel, der gefärbt werden kann.

Ich habe es mit dem folgenden Algorithmus gelöst.

So konnte ich sicher AC. Ich denke, der Grund für den Sieg war, dass ich die farblosen Äpfel zum Array APPLE hinzufügen konnte.

Persönlich ist der Schwierigkeitsgrad im E-Problem niedrig ...?

Problem F

Nachdem ich über 5 Minuten nachgedacht hatte, konnte ich es nicht tun, also war ich für die restlichen 20 Minuten abwesend lol


Impressionen

Wasserleistung (1411) zum ersten Mal seit langer Zeit Die Bewertung ist 936 → 1003, was das erste Mal ist, dass 1000 überschritten werden! !! : erröten:

Das E-Problem war ein wenig einfach, aber ich bin froh, dass ich es geschafft habe, es zu lösen ... Ich möchte mich an die AC von A-E halten und sie stabilisieren. Wenn Sie dies tun können, sollten Sie bald in der Lage sein, ein Wassername zu werden! : raise_hands:

Vielen Dank für das Lesen bis zum Ende!

Recommended Posts

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 160 mit Java
Löse den AtCoder-Anfängerwettbewerb 152 mit Java
Löse den AtCoder-Anfängerwettbewerb 156 mit Java
AtCoder Anfängerwettbewerb 168
AtCoder Anfängerwettbewerb 167 C Problem (Java)
AtCoder Beginner Contest 182 Teilnahmeartikel
AtCoder Anfängerwettbewerb 132 D Problem
Java Anfänger 4
Java Anfänger 3
Java Anfänger
AtCoder dwango Programmierwettbewerb B zum Lösen in Ruby, Perl und Java B.
AtCoder ARC 081 C-Hash, der in Ruby, Perl und Java gelöst werden muss
Versuchen Sie, Project Euler in Java zu lösen
Partisierung in Java
Änderungen in Java 11
AtCoder ABC 111 C Hash-Sortierung In Ruby, Perl und Java gelöst
Janken in Java
Übungen für Java-Anfänger
Umfangsrate in Java
FizzBuzz in Java
Java-Übung "Anfänger"
AtCoder Anfängerwettbewerb 169 A, B, C mit Rubin
[AtCoder Problem-ABC001] C-Do Windbeobachtung in Java [Code]
So lösen Sie Ausdrucksprobleme in Java
[Anfänger] Installieren Sie das Java-Entwicklungstool in der Cloud9-Entwicklungsumgebung.
Eine Geschichte über einen Super-Anfänger, der zum ersten Mal am AtCoder-Wettbewerb teilnimmt (AtCoder-Anfängerwettbewerb 140)
Lesen Sie JSON in Java
Interpreter-Implementierung durch Java
Machen Sie einen Blackjack mit Java
Janken App in Java
Einschränkungsprogrammierung in Java
Setzen Sie Java8 in Centos7
NVL-artiger Typ in Java
Verbinden Sie Arrays in Java
"Hallo Welt" in Java
Es ist spät! Versuchen Sie, Android Notification in Java (Anfänger) zu implementieren.
Kommentare in der Java-Quelle
Azure funktioniert in Java
Formatieren Sie XML in Java
Einfache HTML-Spezialchars in Java
Boyer-Moore-Implementierung in Java
Hallo Welt in Java
Verwenden Sie OpenCV mit Java
Typbestimmung in Java
Verschiedene Threads in Java
Implementierung der Heap-Sortierung (in Java)
Zabbix API in Java
ASCII-Kunst in Java
Listen in Java vergleichen
POST JSON in Java
Fehler in Java ausdrücken
Versuchen Sie, ein eingeschränktes FizzBuzz-Problem in Java zu lösen
Erstellen Sie JSON in Java
Datumsmanipulation in Java 8
Was ist neu in Java 8?