[PYTHON] AtCoder Beginner Contest 085 Rückblick auf frühere Fragen

Benötigte Zeit

スクリーンショット 2020-03-30 19.02.19.png

Impressionen

Es ist eine einfache Zeit, aber ich hatte das Gefühl, dass das D-Problem ein grundlegendes und gutes Problem ist. Dieses Mal habe ich AtCoder Virtual Contest verwendet.

Problem A

Durch 8 ersetzen. Da der String unveränderlich ist, denke ich, dass er entweder einmal (zuerst) geteilt oder in eine Liste geändert und ersetzt (zweitens) wird.

answerA1.py


s=input()
print(s[:3]+"8"+s[4:])

answerA2.py


s=list(input())
s[3]="8"
print("".join(s))

B-Problem

Es ist nicht möglich, Reiskuchen mit demselben Durchmesser zu verwenden. Daher sollten Sie Duplikate ausschließen. Sie können set dafür verwenden.

answerB.py


n=int(input())
d=[int(input()) for i in range(n)]
print(len(set(d)))

C-Problem

Da y ein Vielfaches von 1000 ist, können Sie es durch 1000 teilen und über die Gleichung 10i + 5j + k = y nachdenken (0 <= i, j, k <= n, i + j + k = n). Eine solche Ungleichung sollte an der Stelle entschieden werden, an der der Koeffizient groß ist, und bei diesem Problem wird sie in der Reihenfolge i → j → k entschieden. 0 ~ y // 10 ist ein Kandidat für i, 0 ~ (y-i * 10) // 5 ist ein Kandidat für j und k wird bestimmt. Wenn Sie das oben Gesagte für alle i und j ausprobieren, können Sie eine Antwort finden, die Ihren Anforderungen entspricht.

answerC.py


from sys import exit
n,y=map(int,input().split())
y//=1000
for i in range(y//10+1):
    #k: Wie viel ist noch übrig?
    #l: Wie viele Blätter wurden verwendet?
    k1=y-i*10
    for j in range(k1//5+1):
        k=k1-j*5
        l=i+j
        if k==n-l and i>=0 and j>=0 and k>=0:
            print(str(i)+" "+str(j)+" "+str(k))
            exit()
print("-1 -1 -1")

D Problem

Wenn Sie entscheiden können, welches Schwert Sie schwingen und wie oft Sie werfen möchten, bevor Sie das Monster besiegen, können Sie unabhängig von der Reihenfolge entscheiden. Zunächst einmal, in Bezug darauf, wie oft welches Schwert geschwungen werden muss, da jedes Schwert mehrmals geschwungen werden kann und das Schwert mit dem höheren Punkt geschwungen werden sollte, nur das Schwert mit dem höchsten Punkt ** ** (Punkt $ a_k $) Es ist am besten, weiter zu zittern. In Bezug auf das zu werfende Schwert ist es nicht erforderlich, ein Schwert zu werfen, dessen Punkt (wenn geworfen) niedriger als der Punkt $ a_k $ ist (der Punkt ist besser, das Schwert stattdessen mit Punkt $ a_k $ zu schwingen. Weil es teuer ist). Wurfschwerter sind daher alle Schwerter mit höheren Punkten (wenn sie geworfen werden) als Punkt $ a_k $. Ausgehend von der obigen Überlegung wird zunächst unter der Annahme, dass alle Schwerter mit höheren Punkten (wenn sie geworfen werden) als Punkt $ a_k $ geworfen werden, in der Reihenfolge vom H-Punkt gezogen, und selbst wenn angenommen wird, dass alle von ihnen geworfen werden, H. Wenn Sie nicht mehr Schaden als Punkte anrichten können, können Sie das Schwert mit den Punkten $ a_k $ so oft schwingen, wie Sie benötigen.

answerD.py


import math
n,h=map(int,input().split())
ab=[list(map(int,input().split())) for i in range(n)]
ab.sort(reverse=True)
k=ab[0][0]
ab.sort(reverse=True,key=lambda x:x[1])
ans=0
while h>0:
    if ans==n:
        break
    if k<=ab[ans][1]:
        h-=ab[ans][1]
        ans+=1
    else:
        break
if h<=0:
    print(ans)
else:
    print(ans+math.ceil(h/k))

Recommended Posts

AtCoder Beginner Contest 102 Rückblick auf frühere Fragen
AtCoder Beginner Contest 072 Rückblick auf frühere Fragen
AtCoder Beginner Contest 085 Rückblick auf frühere Fragen
AtCoder Beginner Contest 062 Rückblick auf frühere Fragen
AtCoder Beginner Contest 113 Rückblick auf frühere Fragen
AtCoder Beginner Contest 074 Rückblick auf frühere Fragen
AtCoder Beginner Contest 051 Rückblick auf frühere Fragen
AtCoder Beginner Contest 127 Rückblick auf frühere Fragen
AtCoder Beginner Contest 119 Rückblick auf frühere Fragen
AtCoder Beginner Contest 151 Rückblick auf frühere Fragen
AtCoder Beginner Contest 075 Rückblick auf frühere Fragen
AtCoder Beginner Contest 054 Rückblick auf frühere Fragen
AtCoder Beginner Contest 110 Rückblick auf frühere Fragen
AtCoder Beginner Contest 117 Rückblick auf frühere Fragen
AtCoder Beginner Contest 070 Rückblick auf frühere Fragen
AtCoder Beginner Contest 105 Rückblick auf frühere Fragen
AtCoder Beginner Contest 112 Rückblick auf frühere Fragen
AtCoder Beginner Contest 076 Rückblick auf frühere Fragen
AtCoder Beginner Contest 089 Rückblick auf frühere Fragen
AtCoder Beginner Contest 069 Rückblick auf frühere Fragen
AtCoder Beginner Contest 079 Rückblick auf frühere Fragen
AtCoder Beginner Contest 056 Rückblick auf frühere Fragen
AtCoder Beginner Contest 087 Rückblick auf frühere Fragen
AtCoder Beginner Contest 067 Rückblick auf frühere Fragen
AtCoder Beginner Contest 093 Rückblick auf frühere Fragen
AtCoder Beginner Contest 046 Rückblick auf frühere Fragen
AtCoder Beginner Contest 123 Überprüfung früherer Fragen
AtCoder Beginner Contest 049 Rückblick auf frühere Fragen
AtCoder Beginner Contest 078 Rückblick auf frühere Fragen
AtCoder Beginner Contest 081 Rückblick auf frühere Fragen
AtCoder Beginner Contest 047 Rückblick auf frühere Fragen
AtCoder Beginner Contest 060 Rückblick auf frühere Fragen
AtCoder Beginner Contest 104 Rückblick auf frühere Fragen
AtCoder Beginner Contest 057 Rückblick auf frühere Fragen
AtCoder Beginner Contest 121 Rückblick auf frühere Fragen
AtCoder Beginner Contest 126 Rückblick auf frühere Fragen
AtCoder Beginner Contest 090 Rückblick auf frühere Fragen
AtCoder Beginner Contest 103 Rückblick auf frühere Fragen
AtCoder Beginner Contest 061 Rückblick auf frühere Fragen
AtCoder Beginner Contest 059 Rückblick auf frühere Fragen
AtCoder Beginner Contest 044 Rückblick auf frühere Fragen
AtCoder Beginner Contest 083 Rückblick auf frühere Fragen
AtCoder Beginner Contest 048 Rückblick auf frühere Fragen
AtCoder Beginner Contest 124 Rückblick auf frühere Fragen
AtCoder Beginner Contest 116 Rückblick auf frühere Fragen
AtCoder Beginner Contest 097 Rückblick auf frühere Fragen
AtCoder Beginner Contest 088 Rückblick auf frühere Fragen
AtCoder Beginner Contest 092 Rückblick auf frühere Fragen
AtCoder Beginner Contest 099 Rückblick auf frühere Fragen
AtCoder Beginner Contest 065 Rückblick auf frühere Fragen
AtCoder Beginner Contest 053 Rückblick auf frühere Fragen
AtCoder Beginner Contest 094 Rückblick auf frühere Fragen
AtCoder Beginner Contest 063 Rückblick auf frühere Fragen
AtCoder Beginner Contest 107 Rückblick auf frühere Fragen
AtCoder Beginner Contest 071 Rückblick auf frühere Fragen
AtCoder Beginner Contest 064 Rückblick auf frühere Fragen
AtCoder Beginner Contest 082 Rückblick auf frühere Fragen
AtCoder Beginner Contest 084 Rückblick auf frühere Fragen
AtCoder Beginner Contest 068 Rückblick auf frühere Fragen
AtCoder Beginner Contest 043 Rückblick auf frühere Fragen