AtCoder ABC166 Ceci est un résumé des problèmes du concours AtCoder Beginner Contest 166 qui a eu lieu le 2020-05-03 (dimanche), en commençant par le problème A et en tenant compte des considérations. La première moitié traite des problèmes jusqu'à ABC. Le problème est cité, mais veuillez consulter la page du concours pour plus de détails. Cliquez ici pour la page du concours Commentaire officiel PDF
Énoncé du problème AtCoder organise un concours tous les samedis. Il existe deux types de concours, ABC et ARC, pour 2 $, dont l'un a lieu chaque semaine. L'ARC aura lieu la semaine suivant l'ABC et l'ABC la semaine suivant l'ARC. Vous recevrez la chaîne $ S $ qui représente le concours qui a eu lieu la semaine dernière, veuillez donc indiquer la chaîne qui représente le concours qui a eu lieu cette semaine.
Je pense que ce domaine peut être résolu sans problème particulier. Si l'instruction if détermine si la chaîne de caractères reçue est ABC ou ARC, le processus est terminé.
abc166a.py
s = input()
if s == "ABC":
print("ARC")
else:
print("ABC")
Énoncé du problème Il y a des personnes $ N $ vivant dans une ville (Sunuke-kun $ 1 $, Sunuke-kun $ 2 $, ..., Sunuke-kun $ N $). $ K $ types de bonbons (1 $ bonbons, 2 $ bonbons, ...., $ K $ bonbons) sont en vente dans cette ville. La personne qui possède les bonbons $ i $ est Sunuke-kun $ A_ {i, 1}, A_ {i, 2}, ⋯, A_ {i, d_i} $, soit un total de $ d_i $ personnes. Takahashi va maintenant parcourir la ville et jouer avec Sunuke, qui n'a pas 1 $ de bonbons. Combien de Sunuke-kun seront espiègles en ce moment?
Faites une liste kun_list
pour enregistrer M. Sunuke qui sera malicieux.
Si vous ne donnez pas d'abord les informations sur les bonbons, tout le monde n'aura pas les bonbons et vous serez espiègle.
Donc, si vous utilisez les informations sur les bonbons qui y sont données pour supprimer Sunuke qui a des bonbons de la liste des méfaits, vous vous retrouverez avec Sunuke qui n'a pas de bonbons et qui est espiègle. Il restera sur la liste et pourra être résolu en comptant le nombre de personnes.
abc166b.py
n, k = map(int, input().split())
kun_list = [1] * n
for i in range(0, k):
d = int(input())
a_list = list(map(int, input().split()))
for a in a_list:
kun_list[a-1] = 0
print(sum(kun_list))
Énoncé du problème Il y a des observatoires $ N $ sur les collines d'AtCoder, et l'élévation de l'observatoire $ i $ est $ H_i $. Il existe également une route du livre $ M $ qui relie différents observatoires, et la route $ j $ relie l'observatoire $ A_j $ et l'observatoire $ B_j $. L'observatoire $ i $ est un bon observatoire signifie que l'observatoire $ i $ est plus haut que tout observatoire accessible depuis l'observatoire $ i $ en utilisant une seule route. .. Même s'il n'y a pas d'observatoire accessible depuis l'observatoire $ i $ par une seule route, l'observatoire $ i $ est considéré comme un bon observatoire. Découvrez combien il existe de bons observatoires.
Dans l'explication, trouvez la hauteur maximale $ maxH_i $ de l'observatoire (adjacent) qui peut être atteint par une route depuis l'observatoire $ i $ à chaque observatoire, et si $ H_i> maxH_i $, utilisez un bon observatoire. À cause de cela, j'avais l'habitude de compter le nombre.
J'ai fait une liste d'observatoires appelés «ten_list» comme de bons observatoires pour le moment.
Étant donné une information routière, l'un ou les deux observatoires ne seront plus de bons observatoires, nous avons donc comparé les hauteurs et mis à jour la ten_list
(les deux observatoires Ce n'est pas un bon observatoire quand les hauteurs sont égales).
Enfin, comptez le nombre de bons observatoires restants.
abc166c.py
n, m = map(int, input().split())
h_list = list(map(int, input().split()))
ten_list = [1] * n
for i in range(0, m):
a, b = map(int, input().split())
if h_list[a - 1] <= h_list[b - 1]:
ten_list[a - 1] = 0
if h_list[a - 1] >= h_list[b - 1]:
ten_list[b - 1] = 0
print(sum(ten_list))
C'est la fin du premier semestre. La seconde moitié expliquera le problème DEF. J'étais un peu inquiet au moment du concours car le problème C était un problème qui pouvait être résolu presque de la même manière que le problème B, mais j'ai pu le résoudre jusqu'à présent sans rester bloqué. Cependant, après avoir également résolu ABC dans ce concours, je me suis retrouvé coincé et j'ai essayé et j'ai commis des erreurs, mais à la fin, cela s'est terminé sans émettre de "AC", et je regrette que cela ait été comparé à la vitesse de la course à courte distance au problème C. .. C'était environ 14 minutes après le début du problème C. Après tout, je veux sortir de la course en posant des questions sur un problème difficile. Merci d'avoir lu jusqu'à la fin de la première moitié pour le moment. Suite dans la seconde moitié.
Recommended Posts