atCoder 173 Python

Zusammenfassung

A, B, D wurden gelöst, aber C hat eine Zeitüberschreitung, wenn die Lösung bekannt ist. Die ersten 4 Abschlüsse wurden nicht erreicht.

Problem

https://atcoder.jp/contests/abc173/tasks/abc173_a

A. Payment

Antworten

import math
N = int(input())

m = math.ceil(N / 1000)
answer = m * 1000 - N
print(answer)

Einfach schreiben.

B. Judge Status Summary

Antworten

results = {'AC': 0, 'WA': 0, 'TLE': 0, 'RE': 0}
N = int(input())
for _ in range(N):
    result = input()
    results[result] += 1

for k, v in results.items():
    print(k, 'x', v)

Schreib das auch einfach.

C. H and V

Antworten

import itertools
import numpy as np

H, W, K = map(int, input().split())

temp = []
for _ in range(H):
    C = list(input())
    A = [c.replace('.', '0') for c in C]
    A = [a.replace('#', '1') for a in A]
    A = list(map(lambda x: int(x), A))
    temp.append(A)

C = np.array(temp)

count = 0
l = [0, 1]
wide = itertools.product(l, repeat=W)
for w in wide:
    hight = itertools.product(l, repeat=H)
    for h in hight:
        copy_C = C.copy()
        for num, i in enumerate(w):
            if i == 1:
                copy_C[:, num-1] = 0
            for num2, j in enumerate(h):
                if j == 1:
                    copy_C[num2-1, :] = 0
        if copy_C.sum() == K:
            count += 1

print(count)

Ich konnte es nicht innerhalb des Zeitlimits lösen. Ich verstand die Idee schnell, konnte aber die Implementierung nicht abschließen und die Zeit war abgelaufen. Am nächsten Tag beruhigte ich mich und es wurde gelöst. Es ist ein wenig schmutziger Code, weil die for-Schleife vervierfacht ist.

Kurz gesagt, verwenden Sie `numpy```, um '.' `` in 0``` und # # `in 1 zu konvertieren Machen Sie es eine Matrix von `` 0,1```. Und die Richtlinie besteht darin, "count" zu erhöhen, wenn "sum ()" der Matrix zu "K" wird.

Immerhin ist das Malen in Rot dasselbe wie das Malen in Weiß (= Setzen des Matrixelements auf 0), so dass es anscheinend mit einem Stück Numpy realisiert werden kann.

Betrachten Sie danach für jede Zeile und Spalte von `` `H x W``` zwei Auswahlmöglichkeiten: Malen Sie in Rot (setzen Sie das Matrixelement auf 0) oder nicht.

Da Sie zwischen Malen und Nicht-Malen wählen können, setzen Sie eine Flagge mit `0,1```. Es ist `itertools.product````, das dies erzeugt.

Zusammenfassung

Es ist abgeschlossen mit. Ich wollte es rechtzeitig lösen.

D. Chat in a Circle

Antworten

import numpy as np

N = int(input())
A = list(map(int, input().split()))

A = sorted(A, reverse=True)
A = np.array(A)

if N % 2 == 0:
    #Wenn auch
    end = (N - 2) // 2
    answer = A[0] + (A[1:end+1] * 2).sum()
else:
    #Wenn ungerade
    end = (N - 2) // 2
    answer = A[0] + (A[1:end+1] * 2).sum() + A[end+1]

print(answer)

Es war leicht für D. Wenn Sie an fünf konkrete Beispiele denken, können Sie die Regeln sehen.

Die Politik ist

――Es ist am besten, in absteigender Reihenfolge zu besuchen

Die Antwort ist, dies in den Code einzufügen.

Recommended Posts

atCoder 173 Python
AtCoder ABC 174 Python
AtCoder ABC 175 Python
AtCoder # 2 jeden Tag mit Python
Täglicher AtCoder # 6 in Python
Täglicher AtCoder # 18 in Python
Täglicher AtCoder # 53 in Python
Täglicher AtCoder # 33 in Python
AtCoder # 24 jeden Tag mit Python
Täglicher AtCoder # 37 in Python
AtCoder # 8 jeden Tag mit Python
Täglicher AtCoder # 42 in Python
Python
Täglicher AtCoder # 21 mit Python
Täglicher AtCoder # 17 mit Python
Täglicher AtCoder # 38 in Python
Täglicher AtCoder # 54 in Python
Täglicher AtCoder # 11 in Python
Täglicher AtCoder # 15 in Python
Täglicher AtCoder # 47 mit Python
Täglicher AtCoder # 13 in Python
Täglicher AtCoder # 45 mit Python
AtCoder # 30 jeden Tag in Python
Täglicher AtCoder # 40 mit Python
Täglicher AtCoder # 10 mit Python
AtCoder # 5 jeden Tag mit Python
Täglicher AtCoder # 28 in Python
Täglicher AtCoder # 39 in Python
Automatische Übermittlung von AtCoder (Python)
Täglicher AtCoder # 20 in Python
Täglicher AtCoder # 19 in Python
Täglicher AtCoder # 52 in Python
Täglicher AtCoder # 3 in Python
Täglicher AtCoder # 14 mit Python
Täglicher AtCoder # 50 mit Python
Täglicher AtCoder # 26 mit Python
Täglicher AtCoder # 4 mit Python
Täglicher AtCoder # 43 in Python
Täglicher AtCoder # 29 in Python
Jeden Tag mit Python AtCoder # 22
Täglicher AtCoder # 49 in Python
Täglicher AtCoder # 27 in Python
AtCoder # 1 jeden Tag mit Python
Täglicher AtCoder # 25 mit Python
Täglicher AtCoder # 16 in Python
Täglicher AtCoder # 12 in Python
Python Golf Tech (AtCoder)
Täglicher AtCoder # 48 in Python
Täglicher AtCoder # 23 in Python
Täglicher AtCoder # 34 in Python
Täglicher AtCoder # 51 mit Python
Täglicher AtCoder # 31 in Python
Jeden Tag mit Python AtCoder # 46
Täglicher AtCoder # 35 mit Python
AtCoder # 9 jeden Tag mit Python
Täglicher AtCoder # 44 mit Python
Jeden Tag mit Python AtCoder # 41
AtCoder ABC 177 Python (A ~ E)
Hellblau mit AtCoder @Python