Löse A ~ D des Yuki-Codierers 247 mit Python

Ich habe am Yuki Coder 247 teilgenommen (https://yukicoder.me/contests/262). Ich konnte nur bis zu C innerhalb der Zeit lösen, aber nach dem Ende habe ich bis zu D gelöst, also werde ich bis zu D setzen.

A Wenn es positive Früchte gibt, sortieren Sie sie und ordnen Sie die positiven. Wenn Sie nur negative haben, können Sie eine der frischesten negativen auswählen.

# A

N, K = list(map(int, input().split()))
As = list(map(int, input().split()))
positives = [a for a in As if a >= 0]
negatives = [a for a in As if a < 0]

if positives:
    selected = sorted(positives)
else:
    selected = [sorted(negatives)[-1]]

selected = selected[-min(K, len(selected)):]
print(sum(selected))

B Wenn $ N_0 = 0, N_ {i + 1} = AN_i + B $ und $ N_ {n} = 0 $, finden Sie die Mindestanzahl von Schritten $ n $. Dies ist $ N_ {n + 1} = \ sum_ {i = 1} ^ n A ^ i B = \ frac {1-A ^ {n + 1}} {1-A} B $, also $ B. Es kann nur gesehen werden, wenn = 0 $ oder $ A = -1 $.

# B

A, B = list(map(int, input().split()))

if B == 0:
    print(1)
elif A == -1:
    print(2)
else:
    print(-1)

C Finden Sie heraus, ob Sie in einer der folgenden Situationen stecken bleiben:

  1. Es gibt eine Ganzzahl $ n $, die $ LK \ leq nM \ leq RK $ ist
  2. K=0

1 kann ein beliebiger Unterschied zwischen dem ganzzahligen Teil von $ RK / M $ und dem ganzzahligen Teil von $ LK / M $ sein, der 1 oder mehr ist, oder $ R $ oder $ L $ ist ein Vielfaches von $ M $. Der Grund dafür, dass der Unterschied mehr als 1 beträgt, ist zu berücksichtigen, wenn der Unterschied zwischen $ LK $ und $ RK $ weniger als $ M $ beträgt.

# C

L, R, M, K = list(map(int, input().split()))

if R * K // M - L * K // M >= 1 or R * L % M == 0 or K == 0:
    print('Yes')
else:
    print('No')

D Sei $ z_i $ die Zahl, wenn sie zum $ i $ -ten Zeitpunkt Null ist, und $ n_i $, wenn sie nicht Null ist. In diesem Fall kann die folgende allmähliche Gleichung erstellt werden.

\displaystyle{
\begin{aligned}
z_{i+1} &= (P+1)z_i + 2 n_i,  \\
n_{i+1} &= (P-1)z_i + 2(P-1)n_i.
\end{aligned}
}

Über die Update-Formel von $ z_i $ --1 Artikel: Gesamt $ P + 1 $ wie unten

# D

P, K = list(map(int, input().split()))
mod = 10**9 + 7

z_i, n_i = 1, 0
for i in range(K):
    z_i, n_i = (P + 1) * z_i + 2 * n_i, (P - 1) * z_i + 2 * (P - 1) * n_i
    z_i, n_i = z_i % mod, n_i % mod

print(z_i)

Recommended Posts

Löse A ~ D des Yuki-Codierers 247 mit Python
Löse ABC166 A ~ D mit Python
Löse AtCoder ABC168 mit Python (A ~ D)
[AtCoder] Lösen Sie ein Problem von ABC101 ~ 169 mit Python
Löse ABC163 A ~ C mit Python
Löse ABC168 A ~ C mit Python
Löse ABC162 A ~ C mit Python
Löse ABC167 A ~ C mit Python
Löse ABC158 A ~ C mit Python
Eine Sammlung wettbewerbsfähiger Pro-Techniken, die mit Python gelöst werden können
[AtCoder] Löse ABC1 ~ 100 Ein Problem mit Python
Löse ABC165 A, B, D mit Python
Ich wollte das ABC164 A ~ D-Problem mit Python lösen
Löse AtCoder 167 mit Python
[Python] Grenzachse des 3D-Graphen mit Matplotlib
Löse Mathe mit Python
Versuchen Sie, ein festgelegtes Problem der High-School-Mathematik mit Python zu lösen
Löse POJ 2386 mit Python
[Erklärung zum AtCoder] Kontrollieren Sie die A-, B-, (C), D-Probleme von ABC165 mit Python!
[AtCoder-Erklärung] Kontrollieren Sie die A-, B-, C- und D-Probleme von ABC183 mit Python!
Lösen mit Ruby und Python AtCoder ABC084 D Kumulative Summe der Primzahlen
[Erklärung zum AtCoder] Kontrollieren Sie die A-, B-, C- und D-Probleme von ABC181 mit Python!
Memo mit Python mit HiveServer2 von EMR verbunden
Empfehlung zum Erstellen einer tragbaren Python-Umgebung mit conda
[Python] So erstellen Sie mit Matplotlib ein zweidimensionales Histogramm
Erstellen Sie eine 2D-CAD-Datei ".dxf" mit Python [ezdxf]
[Python] Löse Gleichungen mit Sympy
Löse AtCoder ABC166 mit Python
Erstellen Sie ein 3D-GIF mit Python3
Python> Umgang mit 2D-Arrays
Löse ABC175 D in Python
Machen Sie eine Lotterie mit Python
AtCoder ABC 182 Python (A ~ D)
Erstellen Sie ein Verzeichnis mit Python
Erfassung der 3D-Punktgruppe mit Pepper of Softbank (Choregraphe, Python)
Lösen mit Ruby und Python AtCoder ABC133 D Kumulative Summe
Holen Sie sich eine Liste der mit Python + Selen gekauften DMM-E-Books
[At Coder] Lösen Sie typische Probleme der Tiefenprioritätssuche (DFS).
Erkennen Sie mit Python Objekte einer bestimmten Farbe und Größe
Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren
Drehen Sie ein Array von Zeichenfolgen mit einer for-Anweisung (Python3).
Eine Aufzeichnung zum Patchen eines Python-Pakets
[Python] Was ist eine with-Anweisung?
Bedienen Sie den Belegdrucker mit Python
Python-Grafikhandbuch mit Matplotlib.
Eine gute Beschreibung der Python-Dekorateure
Dreidimensionale Skelettstrukturanalyse mit Python
Lassen Sie uns eine GUI mit Python erstellen.
[Python] Ein Memorandum der schönen Suppe4
Eine kurze Zusammenfassung der Python-Sammlung
Erste Schritte mit Python Grundlagen von Python
Erstellen einer virtuellen Umgebung mit Python 3
Beheben von AtCoder-Problemen Empfehlung mit Python (20200517-0523)
Erstellen Sie ein Empfehlungssystem mit Python
Lebensspiel mit Python! (Conways Spiel des Lebens)
[Python] Jetzt ein brauner Codierer ~ [AtCoder]
Löse ABC036 A ~ C mit Python
10 Funktionen von "Sprache mit Batterie" Python