Nun, nur 90 Grad oder 270 Grad sind vertikal, also schreibe ich es einfach.
N = int(input())
t = N % 360
if t == 90 or t == 270:
print('Yes')
else:
print('No')
Da N ≤ 100 ist, müssen Sie nur alle Kombinationen der beiden Punkte ausprobieren, damit Sie sich keine Sorgen machen müssen. Natürlich habe ich die Gleichung der geraden Linie vergessen, die durch die beiden Punkte verläuft, also habe ich sie gegoogelt. Ich habe "<0,0001" entsprechend verwendet, aber was soll ich tun?
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)
Wie Sie sehen können, handelt es sich um ein Problem, das nur als Nibutan bezeichnet werden kann. Wenn Sie aus Sicherheitsgründen > 0.000001
in> 0.0000001
ändern, ist die Genauigkeit unzureichend und es handelt sich um eine Endlosschleife oder um TLE. Is_ok 10 ** 35 kommt heraus, aber es ist in Ordnung, dass Python einfach ist.
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)
Bestimmen Sie für Trockenbatterien und Miniaturbirnen die Anzahl aller Kombinationen von Gesamtspannung und Gesamtwiderstand durch DP. Da der Widerstandsbereich für jede Spannung aus A und B erhalten werden kann, ist die Anzahl der Kombinationen dieser Spannung * die Kombination von Widerstand in diesem Bereich Die Antwort ist die Summe der Zahlen von. Die Anzahl der Widerstandskombinationen in diesem Bereich kann durch * O * (1) erhalten werden, wenn die kumulative Summe addiert wird. Im Folgenden ist PyPy ein Code, der ACs ohne TLE wird.
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