[PYTHON] AtCoder Beginner Contest 085 Revue des questions précédentes

Temps requis

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

Impressions

C'est un moment simple, mais j'ai senti que le problème D était un problème de base et bon. Cette fois, j'ai utilisé AtCoder Virtual Contest.

Problème A

Remplacez par 8. Puisque la chaîne est immuable, je pense qu'elle est soit divisée une fois (en premier), soit changée en liste et remplacée (en deuxième).

answerA1.py


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

answerA2.py


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

Problème B

Il n'est pas possible d'utiliser des galettes de riz du même diamètre, vous devriez donc envisager d'exclure les doublons. Vous pouvez utiliser set pour cela.

answerB.py


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

Problème C

Puisque y est un multiple de 1000, vous pouvez le diviser par 1000 et penser à l'équation 10i + 5j + k = y (0 <= i, j, k <= n, i + j + k = n). Une telle inégalité doit être décidée à partir de l'endroit où le coefficient est grand, et dans ce problème, elle est décidée dans l'ordre de i → j → k. 0 ~ y // 10 est un candidat pour i, 0 ~ (y-i * 10) // 5 est un candidat pour j, et k est déterminé. En essayant ce qui précède pour tous les i et j, vous pouvez trouver une réponse qui répond à vos besoins.

answerC.py


from sys import exit
n,y=map(int,input().split())
y//=1000
for i in range(y//10+1):
    #k: Combien reste-t-il
    #l: combien de feuilles ont été utilisées
    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")

Problème D

Si vous pouvez décider quelle épée balancer et combien de fois lancer avant de vaincre le monstre, vous pouvez décider quel que soit l'ordre. Tout d'abord, en ce qui concerne le nombre de fois où balancer quelle épée, puisque chaque épée peut être balancée plusieurs fois et que l'épée avec le point le plus élevé doit être balancée, seule l'épée avec le point le plus élevé ** ** (point $ a_k $) Il vaut mieux continuer à trembler. Ensuite, en ce qui concerne quelle épée lancer, il n'est pas nécessaire de lancer une épée dont la pointe (lorsqu'elle est lancée) est inférieure au point $ a_k $ (il est préférable de balancer l'épée avec le point $ a_k $ à la place. Parce que c'est cher). Par conséquent, les épées à lancer sont toutes des épées avec des points plus élevés (lorsqu'ils sont lancés) que le point $ a_k $. À partir de la considération ci-dessus, tout d'abord, en supposant que toutes les épées avec des points plus élevés (lorsqu'ils sont lancés) que le point $ a_k $ sont lancées, tirez dans l'ordre à partir du point H, et même si on suppose qu'elles sont toutes lancées, H au monstre Si vous ne pouvez pas faire plus de dégâts que de points, vous pouvez balancer l'épée avec des points $ a_k $ autant que vous en avez besoin.

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 Revue des questions précédentes
AtCoder Beginner Contest 072 Revue des questions précédentes
AtCoder Beginner Contest 085 Revue des questions précédentes
AtCoder Beginner Contest 062 Revue des questions précédentes
AtCoder Beginner Contest 113 Revue des questions précédentes
AtCoder Beginner Contest 074 Revue des questions précédentes
AtCoder Beginner Contest 051 Revue des questions précédentes
AtCoder Beginner Contest 127 Revue des questions précédentes
AtCoder Beginner Contest 119 Revue des questions précédentes
AtCoder Beginner Contest 151 Revue des questions précédentes
AtCoder Beginner Contest 075 Revue des questions précédentes
AtCoder Beginner Contest 054 Revue des questions précédentes
AtCoder Beginner Contest 110 Revue des questions précédentes
AtCoder Beginner Contest 117 Revue des questions précédentes
AtCoder Beginner Contest 070 Revue des questions précédentes
AtCoder Beginner Contest 105 Revue des questions précédentes
AtCoder Beginner Contest 112 Revue des questions précédentes
AtCoder Beginner Contest 076 Revue des questions précédentes
AtCoder Beginner Contest 089 Revue des questions précédentes
AtCoder Beginner Contest 069 Revue des questions précédentes
AtCoder Beginner Contest 079 Revue des questions précédentes
AtCoder Beginner Contest 056 Revue des questions précédentes
AtCoder Beginner Contest 087 Revue des questions précédentes
AtCoder Beginner Contest 067 Revue des questions précédentes
AtCoder Beginner Contest 093 Revue des questions précédentes
AtCoder Beginner Contest 046 Revue des questions précédentes
AtCoder Beginner Contest 123 Revue des questions précédentes
AtCoder Beginner Contest 049 Revue des questions précédentes
AtCoder Beginner Contest 078 Revue des questions précédentes
AtCoder Beginner Contest 081 Revue des questions précédentes
AtCoder Beginner Contest 047 Revue des questions précédentes
AtCoder Beginner Contest 060 Revue des questions précédentes
AtCoder Beginner Contest 104 Revue des questions précédentes
AtCoder Beginner Contest 057 Revue des questions précédentes
AtCoder Beginner Contest 121 Revue des questions précédentes
AtCoder Beginner Contest 126 Revue des questions précédentes
AtCoder Beginner Contest 090 Revue des questions précédentes
AtCoder Beginner Contest 103 Revue des questions précédentes
AtCoder Beginner Contest 061 Revue des questions précédentes
AtCoder Beginner Contest 059 Revue des questions précédentes
AtCoder Beginner Contest 044 Revue des questions précédentes
AtCoder Beginner Contest 083 Revue des questions précédentes
AtCoder Beginner Contest 048 Revue des questions précédentes
AtCoder Beginner Contest 124 Revue des questions précédentes
AtCoder Beginner Contest 116 Revue des questions précédentes
AtCoder Beginner Contest 097 Revue des questions précédentes
AtCoder Beginner Contest 088 Revue des questions précédentes
AtCoder Beginner Contest 092 Revue des questions précédentes
AtCoder Beginner Contest 099 Revue des questions précédentes
AtCoder Beginner Contest 065 Revue des questions précédentes
AtCoder Beginner Contest 053 Revue des questions précédentes
AtCoder Beginner Contest 094 Revue des questions précédentes
AtCoder Beginner Contest 063 Revue des questions précédentes
AtCoder Beginner Contest 107 Revue des questions précédentes
AtCoder Beginner Contest 071 Revue des questions précédentes
AtCoder Beginner Contest 064 Revue des questions précédentes
AtCoder Beginner Contest 082 Revue des questions précédentes
AtCoder Beginner Contest 084 Revue des questions précédentes
AtCoder Beginner Contest 068 Revue des questions précédentes
AtCoder Beginner Contest 058 Revue des questions précédentes
AtCoder Beginner Contest 043 Revue des questions précédentes