Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie4-

introduction

Bonjour. C'est moelleux et moelleux. Nous résoudrons l'introduction aux algorithmes et aux structures de données d'AOJ. Il est facile de garder une trace de ce que vous avez appris.

Cela fait moins d'un an et demi que j'ai commencé à toucher la programmation moi-même AtCoder est vert, donc je ne suis pas un homme fort. Travaillons dur ensemble.

Pacho Fasomacho Pasomacho Paso

table des matières

Cette fois PART3: Structure de données de base. Je veux faire de mon mieux et le faire jusqu'au bout.

ALDS1_4_A: Linear Search ALDS1_4_B: Binary Search ALDS1_4_C: Dictionary ALDS1_4_D : Areas on the Cross-Section Diagram

ALDS1_4_A: Linear Search

Vérifiez chaque élément de t Le montant du calcul est 0 (n * q)

n = int(input())
s = list(map(int,input().split()))
q = int(input())
t = list(map(int,input().split()))
ans = 0
for t1 in t:
    if t1 in s:
        ans += 1

print(ans)

ALDS1_4_B: Binary Search Vérifiez chaque élément de t Le montant du calcul est 0 (n * q) → 0 (10 ** 9), il est donc impossible de faire une dichotomie, donc 0 (q * ln (n)) Recherche de bisection

def b_search(x, target):
    found = False
    min = 0
    max = len(x)
    mid = (min + max) // 2
    while min <= max:
        if target == x[mid]:
            found = True
            break
        elif target > x[mid]:
            min = mid + 1
        else:
            max = mid - 1
        mid = (min + max) // 2
    if found:
        return True
    else:
        return False


n = int(input())
s = sorted(list(set(map(int,input().split()))))
q = int(input())
t = list(map(int,input().split()))
ans = 0
for i in t:
    if  b_search(s, i):
        ans += 1
print(ans)

ALDS1_4_C: Dictionary

Fondamentalement calculé avec deque



n = int(input())
d = {}

for i in range(n):
    demand, str_list = map(str,input().split())
    if demand == "insert":
        d[str_list] = True

    else:
        if str_list in d:
            print("yes")
        else:
            print("no")

ALDS1_3_D : Areas on the Cross-Section Diagram

Dichotomie fixe Créer une fonction qui peut être effacée avec une certaine valeur Le reste est le déroulement de la recherche de deux minutes


n,k = map(int,input().split())
w = list(int(input())for i  in range(n))
def amount(p):
    e_amount = 0
    track = 1
    for i in w:
        if i > p:
            return False
        elif e_amount + i > p:
            e_amount = i
            track += 1
        else:
            e_amount += i

    if track <= k:
        return True
    else:
        return False


ng = 0
ok = 10**10
while ng + 1 < ok :
    mid = (ok+ng)//2
    if amount(mid) :
        ok = mid
    else:
        ng = mid

print(ok)

en conclusion

je ferai de mon mieux

Recommended Posts

Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie1-
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-
Résolution de l'introduction d'AOJ aux algorithmes et aux structures de données en Python -Partie3-
[Introduction à cx_Oracle] (Partie 6) Mappage des types de données DB et Python
[Introduction à cx_Oracle] (Partie 9) Mappage des types de données DB et Python (version 8 ou ultérieure)
[Introduction à l'application Udemy Python3 +] 36. Utilisation de In et Not
[Introduction to Data Scientists] Bases de Python ♬ Fonctions et classes
Introduction à la vérification des effets Rédaction des chapitres 4 et 5 en Python
Introduction à Python scikit-learn, matplotlib, algorithme monocouche (~ vers B3 ~ part3)
[Introduction à Python] Combinaison des données Nikkei Average et NY Dow CSV
[Introduction à Python3 Jour 1] Programmation et Python
Algorithme de tri et implémentation en Python
Introduction à Python Hands On Partie 1
Hashing de données en R et Python
Notes de lecture (en Python et Stan) pour une introduction à la modélisation statistique pour l'analyse de données (Midorimoto)
traitement pour utiliser les données notMNIST en Python (et essayé de les classer)
[Introduction to Data Scientists] Bases de Python ♬ Branchements conditionnels et boucles
[Introduction aux Data Scientists] Bases de Python ♬ Fonctions et fonctions anonymes, etc.
[Introduction à Python] Comment utiliser la classe en Python?
Modulation et démodulation AM avec Python Partie 2
[Introduction à Python3, jour 17] Chapitre 8 Destinations de données (8.1-8.2.5)
Livre Ali en python: Sec.2-4, structure de données
[Introduction à Python3, jour 17] Chapitre 8 Destinations de données (8.3-8.3.6.1)
Web-WF Python Tornado Partie 3 (Introduction à Openpyexcel)
[Introduction à Python3 Jour 19] Chapitre 8 Destinations de données (8.4-8.5)
[Introduction à Python3 Day 18] Chapitre 8 Destinations de données (8.3.6.2 à 8.3.6.3)
Représentez facilement des données graphiques dans le shell et Python
Compressez les données python et écrivez sur sqlite
Comment utiliser is et == en Python
"Introduction à l'analyse de données par modélisation statistique bayésienne à partir de R et Stan" implémenté en Python
Introduction aux vecteurs: Algèbre linéaire en Python <1>
Introduction à la vérification de l'efficacité Chapitre 1 écrit en Python
[Introduction au Data Scientist] Bases de Python ♬
[Python] [Supplément] Chapitre 04-09 Structures de données diverses (théorie des ensembles et arithmétique dans les ensembles)
Analyse des données: application facile des statistiques descriptives et des statistiques d'estimation aux données CSV en Python
Comment générer une séquence en Python et C ++
[Introduction à Python3 Jour 12] Chapitre 6 Objets et classes (6.3-6.15)
Introduction à la vérification de l'efficacité Chapitre 3 écrit en Python
Variables Python et types de données appris avec la chimio-automatique
Recevoir et afficher les données de formulaire HTML en Python
tse --Introduction à l'éditeur de flux de texte en Python
[Python] Permutation des lignes et des colonnes de données Numpy
[Python] Comment lire les données de CIFAR-10 et CIFAR-100
J'ai écrit "Introduction à la vérification des effets" en Python
[Introduction à Python3, jour 22] Chapitre 11 Traitement parallèle et mise en réseau (11.1 à 11.3)
Envoyer un message à Skype et Chatwork en Python
[Introduction à Python] Comment gérer les données au format JSON
[Introduction à l'application Udemy Python3 +] 64. Espace de noms et portée
[Introduction à Python3 Jour 11] Chapitre 6 Objets et classes (6.1-6.2)
[Introduction à l'algorithme] Trouvez l'itinéraire le plus court [Python3]
Introduction à la vérification de l'efficacité Chapitre 2 écrit en Python
Pour représenter la date, l'heure, l'heure et les secondes en Python
Comment tracer l'autocorrélation et l'autocorrélation partielle avec Python
[Python] Comment nommer les données de table et les sortir avec csv (méthode to_csv)
Introduction à l'analyse des séries temporelles ~ Modèle d'ajustement saisonnier ~ Implémenté en R et Python
[Introduction à l'application Udemy Python3 +] 35. Opérateurs de comparaison et opérateurs logiques
Convertir la date et l'heure zonées en temps Unixtime dans Python2.7
Résumé des outils nécessaires pour analyser les données en Python
Traitement pleine largeur et demi-largeur des données CSV en Python
[Introduction au renforcement de l'apprentissage] part.1-Algorithme Epsilon-Greedy dans Bandit Game