C'est la première fois que j'en coupe 700, donc je n'aime pas ça !!
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')
Percer en 2 minutes. Il suffit d'écrire.
K = int(input())
S = input()
if len(S) <= K:
print(S)
else:
print(S[:K] + '...')
Ç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)))
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:]))
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