[PYTHON] AtCoder Beginner Contest 168 Rapport de participation

AtCoder Beginner Contest 168 Rapport de participation

C'est la première fois que j'en coupe 700, donc je n'aime pas ça !!

ABC168A - ∴ (Therefore)

Percer en 2 minutes. Il suffit d'écrire.

N = int(input())

if N % 10 in [2, 4, 5, 7, 9]:
    print('hon')
elif N % 10 in [0, 1, 6, 8]:
    print('pon')
elif N % 10 in [3]:
    print('bon')

ABC168B - ... (Triple Dots)

Percer en 2 minutes. Il suffit d'écrire.

K = int(input())
S = input()

if len(S) <= K:
    print(S)
else:
    print(S[:K] + '...')

ABC168C - : (Colon)

Ça casse en 9 minutes et demie. Il y a un imbécile qui oublie de bouger l'aiguille des heures même en quelques minutes. Je ne suis pas bon en mathématiques, mais je peux gérer à ce niveau.

from math import pi, sin, cos, sqrt

A, B, H, M = map(int, input().split())

x1 = A * cos(2 * pi * (H + M / 60) / 12)
y1 = A * sin(2 * pi * (H + M / 60) / 12)
x2 = B * cos(2 * pi * M / 60)
y2 = B * sin(2 * pi * M / 60)

print(sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)))

ABC168D - .. (Double Dots)

Il a percé en 9 minutes et demie, le problème était qu'il était facile de chercher par priorité de largeur à partir de l'entrée, mais il était difficile de soumettre avec un cœur fort qu'il n'y avait pas de cas de «non».

from collections import deque

N, M = map(int, input().split())
AB = [map(int, input().split()) for _ in range(M)]

links = [[] for _ in range(N + 1)]
for a, b in AB:
    links[a].append(b)
    links[b].append(a)

result = [-1] * (N + 1)
q = deque([1])
while q:
    i = q.popleft()
    for j in links[i]:
        if result[j] == -1:
            result[j] = i
            q.append(j)
print('Yes')
print('\n'.join(str(i) for i in result[2:]))

ABC168E - ∙ (Bullet)

Je n'ai pas pu le résoudre car il semblait résoluble. Peut-être que le cas où A i </ sub> ou B i </ sub> est 0 n'est pas complet.

Addendum: (A i </ sub>, B i </ sub>) = (0, 0) a été mal traité. (0, 0) est proche de tous les poissons C'était tellement mauvais que j'ai dû l'ajouter plus tard.

Je comprends que b / a et -a / b ne sont pas en bons termes, mais malheureusement Python n'a pas de nombres rationnels, donc je remplace le taple de (a, b). Au fait, (1, 2) et (-4, 2) Je ne m'entends pas bien, mais je ne le sais pas du tout, alors divisez chacun de a et b par pgcd (a, b) et divisez-les. Cela donne (1, 2) et (-2, 1), donc ( Seuls (-b, a), (b, -a) ont une mauvaise relation avec a, b). De plus, (-b, a), (b, -a) sont tous les deux (-a, -b). Puisque nous ne sommes pas en bons termes, (a, b) et (-a, -b) sont des groupes. Après cela, pour chaque (a, b) qui existe, le nombre de cas est 2 ^ (le nombre de (a, b) + ( -A, -b) nombre) + 2 ^ ((-b, a) nombre + (b, -a) nombre) -1 (il n'y a pas de dernier -1 mais il est dupliqué), donc multipliez Ensuite, ajoutez le nombre de (0, 0) à la fin et soustrayez un du montant que vous n'avez pas sélectionné, et vous obtiendrez la réponse.

La théorie est simple, mais la mise en œuvre est riche en calories et ennuyeuse ...

from math import gcd

N = int(input())
AB = [map(int, input().split()) for _ in range(N)]

t = []
d = {}
d[0] = {}
d[0][0] = 0
for a, b in AB:
    i = gcd(a, b)
    if i != 0:
        a //= i
        b //= i
    t.append((a, b))
    d.setdefault(a, {})
    d[a].setdefault(b, 0)
    d[a][b] += 1

used = set()
result = 1
for a, b in t:
    if (a, b) in used:
        continue
    used.add((a, b))
    if a == 0 and b == 0:
        continue
    i = d[a][b]
    j, k, l = 0, 0, 0
    if -a in d and -b in d[-a]:
        j = d[-a][-b]
        used.add((-a, -b))
    if -b in d and a in d[-b]:
        k = d[-b][a]
        used.add((-b, a))
    if b in d and -a in d[b]:
        l = d[b][-a]
        used.add((b, -a))
    result *= pow(2, i + j, 1000000007) + pow(2, k + l, 1000000007) - 1
    result %= 1000000007
result += d[0][0] - 1
result %= 1000000007
print(result)

Recommended Posts

AtCoder Beginner Contest 181 Rapport de participation
AtCoder Beginner Contest 151 Rapport de participation
AtCoder Débutant Contest 176 Rapport de participation
AtCoder Beginner Contest 154 Rapport de participation
AtCoder Beginner Contest 166 Rapport de participation
AtCoder Beginner Contest 153 Rapport de participation
AtCoder Beginner Contest 145 Rapport de participation
AtCoder Débutant Contest 184 Rapport de participation
AtCoder Beginner Contest 165 Rapport de participation
Rapport de participation au concours AtCoder Débutant 160
AtCoder Beginner Contest 169 Rapport de participation
AtCoder Beginner Contest 178 Rapport de participation
AtCoder Beginner Contest 163 Rapport de participation
AtCoder Beginner Contest 164 Rapport de participation
AtCoder Beginner Contest 168 Rapport de participation
Rapport de participation au concours AtCoder Débutant 150
AtCoder Beginner Contest 158 Rapport de participation
Rapport de participation au concours AtCoder Débutant 180
AtCoder Beginner Contest 156 Rapport de participation
AtCoder Beginner Contest 162 Rapport de participation
AtCoder Débutant Contest 157 Rapport de participation
AtCoder Beginner Contest 167 Rapport de participation
AtCoder Débutant Contest 179 Rapport de participation
Concours AtCoder Débutant 182
AtCoder Beginner Contest 146 Rapport de participation
AtCoder Beginner Contest 152 Rapport de participation
AtCoder Débutant Contest 155 Rapport de participation
AtCoder Beginner Contest 174 Rapport de participation
AtCoder Beginner Contest 171 Rapport de participation
AtCoder Beginner Contest 149 Rapport de participation
AtCoder Beginner Contest 148 Rapport de participation
AtCoder Débutant Contest 170 Rapport de participation
AtCoder Débutant Contest 183 Rapport de participation
Note de participation au concours pour débutants AtCoder # 003
AtCoder Grand Contest 041 Rapport de participation
AtCoder Grand Contest 040 Rapport de participation
Rapport de participation au concours régulier AtCoder 105
AtCoder Regular Contest 104 Rapport de participation
Fiche d'inscription au concours ACL pour débutant
Journal de participation Atcoder Beginner Contest 146
AtCoder Chokudai Contest 005 Rapport de participation
AtCoder Grand Contest 047 Rapport de participation
Concours AtCoder Débutant 177
Concours AtCoder Débutant 179
Concours AtCoder Débutant 172
Concours AtCoder Débutant 180
Concours AtCoder Débutant 173
Concours Atcoder Débutant 153
Rapport de participation au concours de programmation AtCoder HHKB 2020
Rapport de participation au concours de programmation AtCoder Acing 2020
Rapport de participation au concours de programmation AtCoder Keyence 2020
Rapport de participation au concours de programmation AtCoder Panasonic 2020
Critique du concours AtCoder Beginner Contest 152
Concours AtCoder Débutant 181 Remarque
Critique du concours AtCoder Débutant 160
Critique du concours AtCoder Débutant 178
Concours AtCoder Débutant 180 Remarque
AtCoder Débutant Contest 167 Évaluation
Rapport de participation au concours d'entraînement de la bibliothèque AtCoder (Python)