Ich bin froh, dass das D-Problem nicht so schwierig war, weil es ein Ideenspiel war, aber es hat viel Zeit in Anspruch genommen, weil aufgrund der Ceil-Funktion im C-Problem ein Fehler aufgetreten ist.
Es ist leicht, Fälle zu unterscheiden, wenn a, b und c alle gleich sind.
answerA.py
a,b,c=map(int,input().split())
if a==b and b==c:
print(1)
elif a==b or b==c or c==a:
print(2)
else:
print(3)
Sie können die Farben in der Reihenfolge von vorne bestimmen. Es gibt nur am Anfang k Wege, und danach können k-1 Wege erhalten werden, indem eine andere Farbe als die unmittelbar vorhergehende Farbe verwendet wird.
answerB.py
n,k=map(int,input().split())
print(k*((k-1)**(n-1)))
Aus dem Verhältnis der Anzahl der Stimmen, die zum i-ten Mal erhalten wurden, ergibt sich die tatsächliche Anzahl der Stimmen, die Ti * x, Ai * x (x ist eine ganze Zahl von 1 oder mehr), und wenn die Anzahl der Stimmen unmittelbar davor T, A, Ti * x> = T ist , Ai * x> = A, sollte gelten. Daher ist x größer als Ceil (T / Ti) und Ceil (A / Ai). In ** Python ist das Ergebnis der Division jedoch der Typ float anstelle von int **, sodass bei einer großen Anzahl ein Fehler auftritt. Verwenden Sie daher hier nicht die Ceil-Funktion. Daher kann die Berechnung ohne Fehler durchgeführt werden, indem - ((- X) // Y) anstelle von ** Ceil (X / Y) ** verwendet wird.
answerC.py
n=int(input())
nt,na=map(int,input().split())
for i in range(n-1):
t,a=map(int,input().split())
#In dem Teil, in dem x berechnet wird, liegt ein Fehler vor
#x=max(ceil(nt/t),ceil(na/a))
x=-min((-nt)//t,(-na)//a)
nt,na=x*t,x*a
print(nt+na)
Zuallererst möchte ich so viele Pars wie möglich ausgeben ** (n-n // 2 mal). Wenn man also eine solche Methode betrachtet, ist die Methode, abwechselnd mit gooper gooper gooper ... auszugeben, die häufigste Methode. Ich hatte nicht viel Zeit, weil ich in freier Wildbahn war, also reichte ich es mit dieser angemessenen Überlegung während des Bachacon ein.
Da die Häufigkeit der Ausgabe von Goo und Par festgelegt wurde, ist zu berücksichtigen, dass die Reihenfolge, in der Goo und Par ausgegeben werden, nicht mit der Punktzahl zusammenhängt. Wenn man bedenkt, wie man die Hand ausstreckt, wenn man ein Par auslöst, während der Gegner eine Gänsehaut ausstößt, +1, wenn man eine Gänsehaut ausstößt, 0, wenn man eine Par ausgibt, wenn man eine Par ausstößt, während der Gegner eine Par ausgibt, 0 goo Wenn Sie ausgeben, ist es -1. Mit anderen Worten, wenn Sie eine Gänsehaut geben, haben Sie auf jeden Fall einen -1-Effekt ** insgesamt ** im Vergleich zu einer Par. Wenn entschieden wird, wie oft Goo und Par ausgegeben werden, kann daher gesagt werden, dass die Punktzahl nicht mit der Reihenfolge von Goo und Par zusammenhängt. (Da es sinnlich geschrieben ist, lesen Sie bitte Antwort für Details.)
Wenn Sie das oben Gesagte implementieren, wird es wie folgt aussehen (zählen Sie einfach die Punkte, wenn Sie mit Gooper Gooper Gooper abwechseln ...).
answerD.py
s=input()
n=len(s)
ans=0
for i in range(n):
if i%2==0:
if s[i]=="p":
ans-=1
else:
if s[i]=="g":
ans+=1
print(ans)
Recommended Posts