[Chez Coder] Ce que j'ai fait pour atteindre le rang vert en Python

qiita.png

La personne qui a récemment obtenu un rang vert dans AtCoder.

Cette fois, j'ai résumé ce que j'ai fait personnellement et ce à quoi je fais attention.

Pour atteindre le rang vert

Je pense que ce qui suit est nécessaire pour atteindre le rang vert.

En fin de compte, je pense qu'il est possible de passer au rang vert même si vous ne pouvez pas résoudre le problème D (même si cela peut prendre un certain temps).

Pour référence, le tableau ci-dessous résume les résultats des concours auxquels j'ai récemment participé virtuellement.

Nom du concours résultat Évaluation *
ABC127 3 complet 921
ABC128 3 complet 1148
ABC129 3 complet 1005
ABC130 4 complet 1309
ABC131 3 complet 524
ABC132 4 complet 1257
ABC133 4 complet 1115
ABC134 4 complet 1113
ABC135 3 complet 1175
ABC136 4 complet 1131
ABC137 4 complet 1451
ABC138 4 complet 1007

En regardant le tableau ci-dessus, il y a ** 3 fois lorsque le taux est de 1148 ou 1175.

ABC131 est un exemple où le problème D était facile, mais il s'est arrêté à 3 arrivées. .. ..

Par conséquent, je pense personnellement comme suit.

Résolvez le problème C en 15 minutes à chaque fois, et résolvez le problème D une fois toutes les trois fois! </ font>

Si cela prend plus de 15 minutes pour résoudre le problème C, je vais certainement résoudre le problème D! Ça me fait sentir.

Ce qui suit est un résumé de ce à quoi vous devez faire attention lorsque vous résolvez les problèmes A à D.

Problème A / Problème B

La plupart des problèmes A et B peuvent être résolus si vous connaissez la grammaire de base.

Je ne pense pas qu'il y ait eu de problème particulier de s'inquiéter de la quantité de calcul, alors résolvons-le simplement en utilisant une instruction for ou if.

Aussi, soyons en mesure d'effectuer un traitement de base de la liste.

test.py


l =[]
l.append(1)  #Ajouter à la liste
a = l.pop()  #Extraire la fin de la liste
l = [i for i in range(N)]  #Notation d'inclusion
max_l = max(l)  #Obtenez la valeur maximale dans la liste
min_l = min(l)  #Obtenez la valeur minimale dans la liste

Et dans le problème B, il y a parfois un problème tel que "un traitement normal est effectué lorsque N> 1, mais un traitement d'exception est effectué lorsque N = 0" (ou plutôt, un tel bogue s'est produit dans le programme que j'ai écrit. Il y a des moments où

test.py


import sys
if N == 0:
   #Traitement spécial
   sys.exit()
for i in range(N):
   #Traitement normal

J'écris parfois quelque chose comme ça.

Problème C

C a des problèmes difficiles, et la quantité de calcul doit être prise en considération.

Point1: voir la taille des données d'entrée (considérer la quantité de calcul)

Exemple 1: problème ABC133 C

Dans ce problème, la taille d'entrée est 2 * 10 ^ 9. C'est la taille que même une seule boucle devient TLE, donc je dois penser qu'une simple instruction for ne peut pas être utilisée.

Cependant, si vous y pensez positivement, c'est un indice car il existe un moyen de réduire sûrement la quantité de calcul.

Exemple 2: problème ARC061 C

Dans ce problème, au contraire, les données d'entrée sont une chaîne de caractères de 10 caractères ou moins. Pour les problèmes avec des données d'entrée extrêmement petites, la ** recherche complète ** est souvent utilisée.

--Si N <= 10, vous pouvez utiliser la recherche complète de bits et la recherche complète de n! Rue. --Si 100 <N <200, vous pouvez utiliser jusqu'à triple boucle

Je peux m'attendre à quelque chose comme ça. C'est juste une attente.

Point2: Notez les bibliothèques utiles, etc. dans un mémo

Le problème C importe diverses bibliothèques et modules Python.

Préparez également à l'avance les fonctions fréquemment utilisées.

Je vais résumer les bibliothèques, modules et fonctions que j'utilise personnellement pour les problèmes C.

--itertools (combinaison, séquence, recherche complète de N! Streets) --math (multiple commun minimum, promesse maximum, etc.) --Enumération des fractions (la version obtenue par O (√N)) --bit full search (valable uniquement lorsque N est petit) --deque (liste qui peut être ajoutée et pop à partir des bords gauche et droit) --heapq (file d'attente prioritaire) --collections (celui qui compte la fréquence d'apparition) --bisect (dichotomie)

Veuillez commenter s'il y en a d'autres!

Pour le dire autrement, la plupart des problèmes peuvent être résolus sans utiliser d'algorithmes difficiles tels que ** méthode de planification dynamique, méthode dixtra, DFS et BFS. ** **

Problème D

Le problème D n'est pas stable car je ne peux le résoudre qu'environ 7 fois si j'ai 10 concours, et parfois je peux le résoudre en 30 minutes et parfois ce n'est que 100 minutes.

Personnellement, je me demandais si ce serait stable si je pouvais résoudre les problèmes listés dans @ drken's cet article sans lutter. Je vais.

Par conséquent, le modèle d'algorithme écrit ici est codé à l'avance, et il semble intéressant d'ajouter ou de modifier le programme en fonction du problème.

Problème E / problème F

Si c'est un codeur vert, vous n'avez pas à le résoudre. Je dois étudier parce que je dois être capable de résoudre le problème E pour devenir bleu clair.

finalement

Il existe de nombreuses opinions personnelles, mais j'espère que cela vous sera utile.

Recommended Posts

[Chez Coder] Ce que j'ai fait pour atteindre le rang vert en Python
Ce que j'ai fait pour économiser la mémoire Python
[Python] Ce que j'ai fait pour faire un test unitaire
Ce que j'ai fait lors de la mise à jour de Python 2.6 vers 2.7
Je veux afficher la progression en Python!
Ce que j'ai fait quand je suis resté coincé dans le délai avec lambda python
J'ai essayé de représenter graphiquement les packages installés en Python
Je veux écrire en Python! (3) Utiliser des simulacres
Ce que j'ai fait pour établir une connexion SSH à l'environnement VPS Ubuntu
Je veux utiliser le jeu de données R avec python
Ce que j'ai appris en Python
Ce que j'ai fait quand j'étais en colère de le mettre avec l'option enable-shared
Ce que j'ai fait pour accélérer la tâche de recherche de chaînes
J'ai essayé d'implémenter la fonction d'envoi de courrier en Python
J'ai essayé de résumer ce que l'homme fort de python fait dans le quartier des professionnels de la compétition
La ventilation est importante. Ce que j'ai fait pour garder une trace de la concentration de C02 dans la pièce
Dans la commande python, python pointe vers python3.8
J'ai écrit la file d'attente en Python
J'ai écrit la pile en Python
[Chez Coder] Ce que j'ai fait pour atteindre le rang vert en Python
Ce que j'ai pensé et appris à étudier pendant 100 jours dans une école de programmation
Ce que j'ai fait pour établir une connexion SSH à l'environnement VPS Ubuntu
Ce à quoi j'étais accro avec json.dumps dans l'encodage base64 de Python
Ce que j'ai fait quand je voulais rendre Python plus rapide -Édition Numba-
Résolvez la plus petite valeur en Python (équivalent au rang D de paiza)
Que faire lorsque le type de valeur est ambigu en Python?
J'ai essayé d'implémenter PLSA en Python
J'ai essayé d'implémenter la permutation en Python
J'ai essayé d'implémenter PLSA dans Python 2
Qu'est-ce que "mahjong" dans la bibliothèque Python? ??
J'ai essayé d'implémenter ADALINE en Python
Je voulais résoudre ABC159 avec Python
J'ai essayé d'implémenter PPO en Python
Ce que j'ai fait avec les tableaux Python
FBX SDK De quelles compétences ai-je besoin pour créer un programme à l'aide de Python?
[Python] J'ai essayé de résumer le type collectif (ensemble) d'une manière facile à comprendre.
Ce que j'ai fait pour garder une trace de l'humidité et de la température des archives
Je veux expliquer en détail la classe abstraite (ABCmeta) de Python
Le nom du fichier était mauvais en Python et j'étais accro à l'importation
J'ai fait un programme pour vérifier la taille d'un fichier avec Python
Après tout, que dois-je utiliser pour faire des comparaisons de types en Python?
Comment utiliser la bibliothèque C en Python
Je veux faire le test de Dunnett en Python
Je souhaite utiliser Python dans l'environnement de pyenv + pipenv sous Windows 10
Je suis tombé sur un code de caractère lors de la conversion de CSV en JSON avec Python
Python: j'ai pu récurer en lambda
Je veux créer une fenêtre avec Python
Qu'est-ce que wheezy dans l'image Docker Python?
J'ai essayé de simuler "Birthday Paradox" avec Python
J'ai essayé la méthode des moindres carrés en Python
Pour remplacer dynamiquement la méthode suivante en python
J'ai écrit "Introduction à la vérification des effets" en Python
Dessinez des graphiques dans Julia ... Laissez les graphiques à Python
Je veux fusionner des dictionnaires imbriqués en Python
[Python x AWS x Serverless] Ce que j'ai laissé derrière moi au stade de PyCon JP 2020
Conseils pour rédiger un aplatissement concis en python
J'ai essayé d'implémenter TOPIC MODEL en Python
Comment obtenir les fichiers dans le dossier [Python]
J'ai recherché les compétences nécessaires pour devenir ingénieur web avec Python
J'ai essayé d'implémenter la fonction gamma inverse en python
[Question] Que se passe-t-il si vous utilisez% en python?