[PYTHON] AtCoder Grand Contest Défi des questions passées 1

AtCoder Grand Contest Défi des questions passées 1

AGC003B - Simplified mahjong

Il est acceptable de faire le nombre maximum de paires avec la même carte, de reporter s'il y a un surplus, et de donner la priorité au report (c'est-à-dire de reporter la carte actuelle s'il y a un surplus), mais à 0 carte Lorsqu'un report survient, il n'y a pas de carte à utiliser en priorité, vous devez donc rejeter le report.

N = int(input())

result = 0
remainder = 0
for _ in range(N):
    A = int(input())
    result += (A + remainder) // 2
    if A == 0:
        remainder = 0
    else:
        remainder = (A + remainder) % 2
print(result)

AGC016A - Shrinking

Comme la longueur de s est au maximum de 100 et qu'il n'y a que 26 types d'alphabets, il n'est pas TLE même s'il est arrondi. Pour tous les alphabets contenus dans s, en supposant qu'il reste à la fin, la chaîne de caractères t de longueur N est La valeur minimale du nombre d'opérations peut être obtenue en effectuant effectivement l'opération de passage à la chaîne de caractères de longueur N-1.

s = input()


def f(s, c):
    result = 0
    while len(set(s)) != 1:
        t = ''
        for i in range(len(s) - 1):
            if s[i] == c or s[i + 1] == c:
                t += c
            else:
                t += s[i]
        s = t
        result += 1
    return result


result = float('inf')
for c in set(s):
    result = min(result, f(s, c))
print(result)

AGC017A - Biscuits

Vous pouvez manger un nombre pair de sacs avec un nombre impair, et vous pouvez avoir autant de sacs avec un nombre pair que vous le souhaitez. Si le sac avec un nombre impair est un sac et le sac avec un nombre pair est un sac b, la réponse est (<sous). > a </ sub> C 0 </ sub> + a </ sub> C 2 </ sub> + ... + a </ sub> C étage (a / 2) * 2 </ sub>) * ( b </ sub> C 0 </ sub> + b </ sub> C 1 </ sub> + ... + b </ sub> C b </ sub>). À propos, b </ sub> C 0 </ sub> + b < / sub> C 1 </ sub> + ... + b </ sub> C b </ sub> vaut 2 b </ sup>, donc le reste est une boucle Tournez-vous simplement pour trouver le nombre de façons de choisir un nombre impair de sacs.

def comb(n, k):
    if n - k < k:
        k = n - k
    if k == 0:
        return 1
    a = 1
    b = 1
    for i in range(k):
        a *= n - i
        b *= i + 1
    return a // b


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

odds = sum(a % 2 for a in A)
evens = len(A) - odds

print(sum(comb(odds, i) for i in range(P, odds + 1, 2)) * (2 ** evens))

AGC007A - Shik and Stone

Dans le processus de déplacement, le fait que la pièce se déplace toujours vers la droite ou vers le bas signifie que le nombre de mouvements est (H -1) + (W -1). Le numéro 1 de # avec le point de départ est H + W. - S'il en est un, cela signifie qu'il ne se déplace ni vers le haut ni vers la gauche.

H, W = map(int, input().split())
A = [input() for _ in range(H)]

if H + W - 1 == sum(a.count('#') for a in A):
    print('Possible')
else:
    print('Impossible')

AGC031A - Colorful Subsequence

Si a apparaît n fois dans la chaîne S, alors un motif qui n'utilise pas a, un motif qui utilise le premier a, un motif qui utilise le second a, ... un motif qui utilise le nième a Il existe un modèle de n + 1. Puisque le nombre de combinaisons est indépendant pour chaque caractère, la réponse est de compter le nombre d'apparitions pour chaque caractère et d'additionner le nombre d'apparitions + 1.

N = int(input())
S = input()

MOD = 1000000007

d = {}
for c in S:
    if c in d:
        d[c] += 1
    else:
        d[c] = 1

result = 1
for x in d.values():
    result *= x + 1
    result %= MOD
result += MOD - 1
result %= MOD

print(result)

Recommended Posts

AtCoder Grand Contest Défi des questions passées 1
Concours AtCoder pour débutants Défi des questions passées 6
Concours AtCoder pour débutants Défi des questions passées 4
Concours AtCoder pour débutants Défi des questions passées 9
Concours AtCoder pour débutants Défi des questions passées 7
Concours AtCoder pour débutants Défi des questions passées 10
Concours AtCoder Débutants Défi des questions passées 5
Examen des questions passées d'AtCoder (12/5)
AtCoder Grand Contest 048 Critique
AtCoder Grand Contest 045 Critique
AtCoder Grand Contest 044 Critique
AtCoder Grand Contest 046 Critique
AtCoder Grand Contest 041 Rapport de participation
AtCoder Grand Contest 040 Rapport de participation
AtCoder Grand Contest 047 Rapport de participation
Défiez AtCoder
AtCoder Beginner Contest 066 Revoir les questions précédentes
AtCoder Beginner Contest 102 Revue des questions précédentes
AtCoder Beginner Contest 072 Revue des questions précédentes
AtCoder Beginner Contest 085 Revue des questions précédentes
AtCoder Beginner Contest 062 Revue des questions précédentes
AtCoder Beginner Contest 113 Revue des questions précédentes
AtCoder Beginner Contest 074 Revue des questions précédentes
AtCoder Beginner Contest 051 Revue des questions précédentes
AtCoder Beginner Contest 127 Revue des questions précédentes
AtCoder Beginner Contest 119 Revue des questions précédentes
AtCoder Beginner Contest 151 Revue des questions précédentes
AtCoder Beginner Contest 075 Revue des questions précédentes
AtCoder Beginner Contest 054 Revue des questions précédentes
AtCoder Beginner Contest 110 Revue des questions précédentes
AtCoder Beginner Contest 117 Revue des questions précédentes
AtCoder Beginner Contest 070 Revue des questions précédentes
AtCoder Beginner Contest 105 Revue des questions précédentes
AtCoder Beginner Contest 076 Revue des questions précédentes
AtCoder Beginner Contest 089 Revue des questions précédentes
AtCoder Beginner Contest 069 Revue des questions précédentes
AtCoder Beginner Contest 079 Revue des questions précédentes
AtCoder Beginner Contest 056 Revue des questions précédentes
AtCoder Beginner Contest 087 Revue des questions précédentes
AtCoder Beginner Contest 067 Revue des questions précédentes
AtCoder Beginner Contest 093 Revue des questions précédentes
AtCoder Beginner Contest 046 Revue des questions précédentes
AtCoder Beginner Contest 123 Revue des questions précédentes
AtCoder Beginner Contest 049 Revue des questions précédentes
AtCoder Beginner Contest 078 Revue des questions précédentes
AtCoder Beginner Contest 081 Revue des questions précédentes
AtCoder Beginner Contest 047 Revue des questions précédentes
AtCoder Beginner Contest 060 Revue des questions précédentes
AtCoder Beginner Contest 104 Revue des questions précédentes
AtCoder Beginner Contest 057 Revue des questions précédentes
AtCoder Beginner Contest 121 Revue des questions précédentes
AtCoder Beginner Contest 126 Revue des questions précédentes
AtCoder Beginner Contest 090 Revue des questions précédentes
AtCoder Beginner Contest 103 Revue des questions précédentes
AtCoder Beginner Contest 059 Revue des questions précédentes
AtCoder Beginner Contest 044 Revue des questions précédentes
AtCoder Beginner Contest 083 Revue des questions précédentes
AtCoder Beginner Contest 048 Revue des questions précédentes
AtCoder Beginner Contest 124 Revue des questions précédentes
AtCoder Beginner Contest 116 Revue des questions précédentes
AtCoder Beginner Contest 097 Revue des questions précédentes