Eh bien, seuls 90 degrés ou 270 degrés sont verticaux, alors je viens de l'écrire.
N = int(input())
t = N % 360
if t == 90 or t == 270:
print('Yes')
else:
print('No')
Puisque N ≤ 100, vous n'avez qu'à essayer toutes les combinaisons des deux points, donc vous n'avez pas à vous en soucier. Bien sûr, j'ai oublié l'équation de la ligne droite qui passe par les deux points, alors je l'ai googlé. J'ai utilisé «<0,0001» de manière appropriée, mais que dois-je faire?
N = int(input())
XY = [list(map(int, input().split())) for _ in range(N)]
result = 0
for i in range(N):
for j in range(i + 1, N):
x1, y1 = XY[i]
x2, y2 = XY[j]
if x1 == x2:
result = max(result, len([None for x, y in XY if x == x1]))
continue
t = 0
for k in range(N):
x, y = XY[k]
if abs((y2 - y1) / (x2 - x1) * (x - x1) + y1 - y) < 0.0001:
t += 1
result = max(result, t)
print(result)
Comme vous pouvez le voir, c'est un problème qui ne peut être qualifié que de Niboutan. Pour des raisons de sécurité, si vous remplacez > 0,000001
par> 0,0000001
, la précision sera insuffisante et ce sera une boucle infinie ou ce sera TLE. 10 ** 35 en sort, mais il est normal que Python soit facile.
from math import log2
def is_ok(N):
return N * N <= Q * log2(N) * N + P
P, Q = map(int, input().split())
ok = 1
ng = 10 ** 18
while ng - ok > 0.000001:
m = (ok + ng) / 2
if is_ok(m):
ok = m
else:
ng = m
print(ok)
Pour les piles sèches et les ampoules miniatures, trouvez le nombre de toutes les combinaisons de tension totale et de résistance totale par DP. Étant donné que la plage de résistance peut être obtenue à partir de A et B pour chaque tension, le nombre de combinaisons de cette tension * la combinaison de résistance dans cette plage La réponse est la somme des nombres de. Le nombre de combinaisons de résistances dans cette plage peut être obtenu par * O * (1) si la somme cumulée est ajoutée. Ci-dessous, PyPy est un code qui ACs sans devenir TLE.
N, M = map(int, input().split())
V = list(map(int, input().split()))
R = list(map(int, input().split()))
A, B = map(int, input().split())
vt = {}
vt[0] = 1
for v in V:
nvt = vt.copy()
for k in vt:
nvt.setdefault(k + v, 0)
nvt[k + v] += vt[k]
vt = nvt
del vt[0]
rt = {}
rt[0] = 1
for r in R:
nrt = rt.copy()
for k in rt:
nrt.setdefault(k + r, 0)
nrt[k + r] += rt[k]
rt = nrt
del rt[0]
ra = [0] * (100000 + 1)
for k in rt:
ra[k] = rt[k]
for i in range(1, 100000 + 1):
ra[i] += ra[i - 1]
result = 0
for k in vt:
rlow = (k + B - 1) // B - 1
rhigh = k // A
if rlow == -1:
result += ra[rhigh] * vt[k]
else:
result += (ra[rhigh] - ra[rlow]) * vt[k]
result %= 1000000007
print(result)
Recommended Posts