[Livre Kenchon à Python] -Chapitre 2- "Entraînez vos compétences en résolution de problèmes! Algorithmes et structures de données" J'ai réécrit le code posté en Python!

introduction

Cet article est le livre de Kenchon, qui contient de nombreuses explications sur la programmation compétitive, ** Entraînez vos compétences en résolution de problèmes! Algorithmes et structures de données(けんちょんさん本)**について、掲載コードをPythonに翻訳したものを、備忘のためまとめたものです。

Sur cette page, nous présenterons le contenu du chapitre 2! Veuillez me pardonner s'il y a des bugs.

Consultez les pages suivantes pour obtenir des liens vers d'autres chapitres. [Table des matières] https://qiita.com/KevinST/items/002676619a583754bf76

code2.1 Montant de calcul de simple pour relevé

C'est un problème qui montre le montant du calcul pour une seule instruction for. J'ai également ajouté la sortie.

code2-1.py


#Recevoir N de l'entrée
N = int(input())
count = 0

for i in range(N):
    count += 1

#Résultat de sortie
print(count)

[Exemple d'entrée] 100 [Exemple de sortie] 100

Ce que l'on appelle $ O (N) $!

code2.2 Montant de calcul du double pour relevé

Cette fois, c'est le montant du calcul du double pour la déclaration

code2-2.py


N = int(input())
count = 0
for i in range(N):
    for j in range(N):
        count += 1
print(count)

[Exemple d'entrée] 100 [Exemple de sortie] 10000

Montant du calcul dit O $ (N ^ 2 $)!

code2.3 Énumération paire

code2-3.py


N = int(input())
for i in range(N, 1, -2):
    print(i)

[Exemple d'entrée] 10 [Exemple de sortie] 10 8 6 4 2

Le montant du calcul est de O $ (N) $.

code2.4 Toutes les listes de paires de points récentes

code2-4.py


def calc_dist(x1, y1, x2, y2):
    return ((x1 - x2)**2 + (y1 - y2)**2)**0.5

#Recevoir les données d'entrée
N = int(input())
x = [0] * N
y = [0] * N
for i in range(N):
    x[i], y[i] = map(int, input().split())

#Initialisez la valeur souhaitée avec une valeur suffisamment grande
minimum_dist = 10000000.0

#Commencer l'exploration
for i in range(N):
    for j in range(i+1, N):
        dist_i_j = calc_dist(x[i], y[i], x[j], y[j])
        if dist_i_j < minimum_dist:
            minimum_dist = dist_i_j

print(minimum_dist)

[Exemple d'entrée] 4 1 1 2 2 12 66 18 31 [Exemple de sortie] 1.4142135623730951

Dans l'exemple ci-dessus, --La paire de points récents est (1,1) (2,2) --La distance est $ \ sqrt2 $ --Le montant du calcul est de O $ (N ^ 2) $ est.

Cliquez ici pour le chapitre 3 https://qiita.com/KevinST/items/4d04dc7369880670a63b

Recommended Posts

[Livre Kenchon à Python] -Chapitre 2- "Entraînez vos compétences en résolution de problèmes! Algorithmes et structures de données" J'ai réécrit le code posté en Python!
[Livre Kenchon à Python] -Chapitre 4- "Entraînez vos compétences en résolution de problèmes! Algorithmes et structures de données" J'ai réécrit le code posté en Python!
[Livre Kenchon vers Python] "Entraînez vos compétences en résolution de problèmes! Algorithmes et structures de données" J'ai réécrit le code posté en Python! -table des matières-
"Livre pour former la capacité de programmation à se battre dans le monde" Exemple de réponse de code Python --1.3 URLify
"Livre pour former la capacité de programmation à se battre dans le monde" Exemple de réponse au code Python - 2,6 fois
"Livre pour former des compétences en programmation pour combattre dans le monde" Exemple de réponse de code Python --2.4 Fractionnement de la liste
"Un livre pour former les compétences de programmation pour combattre dans le monde" Exemple de réponse de code Python --2.7 nœuds d'intersection
"Livre pour former la capacité de programmation à se battre dans le monde" Exemple de réponse au code Python - Matrice de 1,8 "0"
"Livre pour former la capacité de programmation à se battre dans le monde" Exemple de solution de code Python --1.6 Compression de chaîne de caractères
"Un livre pour former les compétences de programmation pour combattre dans le monde" Exemple de réponse de code Python --3.1 Trois piles
"Livre pour former des compétences en programmation pour combattre dans le monde" Exemple de solution de code Python - 1.7 Rotation de matrice
"Un livre pour former des compétences en programmation pour combattre dans le monde" Exemple de réponse au code Python --1.4 Séquence de phrases
"Un livre pour former les compétences de programmation pour combattre dans le monde" Exemple de solution de code Python --2.8 Détection de boucle
"Livre pour former les compétences de programmation pour combattre dans le monde" Exemple de réponse de code Python --- Éléments supprimés entre 2.3
"Livre pour former des compétences en programmation pour combattre dans le monde" Exemple de solution de code Python --2.1 Supprimer les éléments en double
"Livre pour former la capacité de programmation à se battre dans le monde" Exemple de réponse de code Python --1.9 Rotation de la chaîne de caractères
"Livre pour former des compétences en programmation pour combattre dans le monde" Exemple de solution de code Python --1.1 Chaîne de caractères en double
"Livre pour former la capacité de programmation à se battre dans le monde" Exemple de réponse de code Python --1.2 Compter le nombre des mêmes caractères
J'ai senti que j'avais porté le code Python en C ++ 98.
"Un livre pour former les compétences de programmation pour combattre dans le monde" Exemple de réponse de code Python --2.5 Somme de deux nombres affichés dans la liste
Résolvez le livre en spirale (algorithme et structure de données) avec python!
Créer un environnement Python et transférer des données vers le serveur
Je veux connaître la nature de Python et pip
Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie1-
J'ai essayé de résoudre l'édition du débutant du livre des fourmis avec python
[Introduction à Python] J'ai comparé les conventions de nommage de C # et Python.
Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie2-
Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie4-
J'ai écrit le code pour écrire le code Brainf * ck en python
Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie3-
J'ai essayé d'obtenir et d'analyser les données statistiques de la nouvelle Corona avec Python: données de l'Université John's Hopkins
J'ai essayé de refactoriser le code du modèle publié dans "Obtenir des images de l'API Flickr avec Python" (Partie 2)