atCoder 173 Python

Résumé

A, B, D ont été résolus, mais C a expiré lorsque la solution est connue. Les 4 premiers achèvements n'ont pas été réalisés.

problème

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

A. Payment

Répondre

import math
N = int(input())

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

Ecrivez.

B. Judge Status Summary

Répondre

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)

Écrivez ceci aussi.

C. H and V

Répondre

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)

Je n'ai pas pu le résoudre dans le temps imparti. J'ai vite compris l'idée, mais je n'ai pas pu terminer la mise en œuvre et le temps était écoulé. Le lendemain, je me suis calmé et cela a été résolu. C'est un peu de code sale car la boucle for est quadruplée.

En bref, utilisez `numpy``` pour convertir '.' `` en 0``` et ' # ' en` `1```. Faites-en une matrice de 0,1 ''. Et la politique est d'augmenter count '' lorsque sum () '' de la matrice devient K```.

Après tout, peindre en rouge est la même chose que peindre en blanc (= mettre l'élément de la matrice à 0), il semble donc que cela puisse être réalisé avec une tranche de numpy.

Après cela, pour chaque ligne et colonne de `` H x L '', considérez deux options, peignez en rouge (définissez l'élément de matrice sur 0) ou non.

Puisqu'il y a un choix entre la peinture et non la peinture, définissez un drapeau avec 0,1 '' C'est itertools.product```` qui génère cela.

Résumé

Il est complété par. Je voulais le résoudre à temps.

D. Chat in a Circle

Répondre

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:
    #Si même
    end = (N - 2) // 2
    answer = A[0] + (A[1:end+1] * 2).sum()
else:
    #Si étrange
    end = (N - 2) // 2
    answer = A[0] + (A[1:end+1] * 2).sum() + A[end+1]

print(answer)

C'était facile pour D. Si vous pensez à cinq exemples concrets, vous pouvez voir les règles.

La politique est

――Il est préférable de visiter par ordre décroissant

La réponse est de mettre cela dans le code.

Recommended Posts

atCoder 173 Python
AtCoder ABC 174 Python
AtCoder ABC 175 Python
AtCoder # 2 tous les jours avec Python
Daily AtCoder # 6 en Python
Daily AtCoder # 18 en Python
Daily AtCoder # 53 en Python
Daily AtCoder # 33 en Python
AtCoder # 24 tous les jours avec Python
Daily AtCoder # 37 en Python
AtCoder # 8 tous les jours avec Python
Daily AtCoder # 42 en Python
Python
AtCoder # 21 quotidien avec Python
Daily AtCoder # 17 avec Python
Daily AtCoder # 38 en Python
Daily AtCoder # 54 en Python
Daily AtCoder # 11 en Python
Daily AtCoder # 15 en Python
Daily AtCoder # 47 avec Python
Daily AtCoder # 13 en Python
AtCoder # 45 quotidien avec Python
AtCoder # 30 tous les jours en Python
AtCoder # 40 quotidien avec Python
AtCoder # 10 quotidien avec Python
AtCoder # 5 tous les jours avec Python
Daily AtCoder # 28 en Python
AtCoder # 39 quotidien avec Python
Automatiser la soumission d'AtCoder (Python)
Daily AtCoder # 20 en Python
Daily AtCoder # 19 en Python
Daily AtCoder # 52 en Python
Daily AtCoder # 3 en Python
Daily AtCoder # 14 avec Python
Daily AtCoder # 50 avec Python
Daily AtCoder # 26 avec Python
AtCoder quotidien # 4 avec Python
Daily AtCoder # 43 en Python
Daily AtCoder # 29 en Python
Tous les jours avec Python AtCoder # 22
Daily AtCoder # 49 en Python
Daily AtCoder # 27 en Python
AtCoder # 1 tous les jours avec Python
Daily AtCoder # 25 avec Python
Daily AtCoder # 16 en Python
Daily AtCoder # 12 en Python
Technologie de golf Python (AtCoder)
Daily AtCoder # 48 en Python
Daily AtCoder # 23 en Python
Daily AtCoder # 34 en Python
AtCoder # 51 quotidien avec Python
Daily AtCoder # 31 en Python
Daily AtCoder # 46 en Python
AtCoder # 35 quotidien avec Python
AtCoder # 9 tous les jours avec Python
Daily AtCoder # 44 avec Python
Daily AtCoder # 41 en Python
AtCoder ABC 177 Python (A ~ E)
Bleu clair avec AtCoder @Python