Lösen mit Ruby und Python AtCoder ABC138 D Benachbarte Liste

Einführung

Dieses Thema

AtCoder Beginner Contest D - Ki Difficulty: 923

Dieses Thema, nebenstehende Liste

Probleme wie eine erweiterte Version der zuvor gelösten * AtCoder ABC168 D Adjacent List, gelöst mit Ruby, Python und networkx *.

Dieses Mal wird der Zählerwert von der Wurzel des Baums an den Scheitelpunkt gesendet. Bereiten Sie also ein Array für den Zähler vor und übergeben Sie den Zählerwert, indem Sie von der Wurzel zum Scheitelpunkt suchen. Ruby

ruby.rb


n, q = gets.split.map(&:to_i)
a = Array.new(n){[]}
n.pred.times do
    x, y = gets.split.map(&:to_i)
    a[x - 1] << y - 1
    a[y - 1] << x - 1
end
p = Array.new(n){0}
q.times do |i|
  x, y = gets.split.map(&:to_i)
  p[x - 1] += y
end
c = Array.new(n){0}
c[0] = 1
que = []
que << 0
while que.size > 0
  e = que.shift
  a[e].each do |i|
    next if c[i] > 0
    c[i] = 1
    p[i] += p[e]
    que << i
  end
end
puts p

index.rb


    p[i] += p[e]

Hier wird der Wert des Zählers übergeben. Python

python.py


from sys import stdin

def main():
    from collections import deque
    input = stdin.readline
    n, q = map(int, input().split())
    a = [[] for _ in range(n)]
    for i in range(n - 1):
        x, y = map(int, input().split())
        a[x - 1].append(y - 1)
        a[y - 1].append(x - 1)
    p = [0] * n
    for i in range(q):
        x, y = map(int, input().split())
        p[x - 1] += y
    c = [0] * n
    c[0] = 1
    que = deque([])
    que.append(0)
    while len(que) > 0:
        e = que.popleft()
        for i in a[e]:
            if c[i] > 0:
                continue
            c[i] = 1
            p[i] += p[e]
            que.append(i)
    for i in range(n):
        print(p[i])
main()

stdin.py


from sys import stdin
    input = stdin.readline

Die Verwendung von "stdin" beschleunigt die Ausführung erheblich.

Ruby Python Python (stdin) PyPy PyPy (stdin)
Codelänge(Byte) 442 681 736 681 736
Ausführungszeit(ms) 802 1734 1044 1959 864
Erinnerung(KB) 25468 53008 53040 105164 91852

Zusammenfassung

Recommended Posts

Lösen mit Ruby und Python AtCoder ABC138 D Benachbarte Liste
Lösen mit Ruby, Python und networkx AtCoder ABC168 D Benachbarte Liste
Lösen mit Ruby und Python AtCoder ABC178 D Dynamische Planungsmethode
Lösen mit Ruby und Python AtCoder ABC151 D Suche nach Breitenpriorität
AtCoder ABC 165 D Bodenfunktion in Ruby, Perl, Java und Python gelöst
Lösen mit Ruby, Perl, Java und Python AtCoder ABC 131 D Sortieren von Arrays
Lösen mit Ruby und Python AtCoder ABC133 D Kumulative Summe
Lösen mit Ruby und Python AtCoder ABC011 C Dynamische Planungsmethode
Lösen mit Ruby und Python AtCoder ABC153 E Dynamische Planungsmethode
Lösen in Ruby, Python und Java AtCoder ABC141 D Priority Queue
Lösen mit Ruby, Python und numpy AtCoder ABC054 B Matrixberechnung
Lösen mit Ruby, Perl, Java und Python AtCoder ABC 065 C-te Potenz
Lösen mit Ruby, Perl, Java und Python AtCoder ABC 107 B String-Manipulation
Lösen mit Ruby und Python AtCoder ABC084 D Kumulative Summe der Primzahlen
Lösen mit Ruby, Perl, Java und Python AtCoder ATC 002 A.
Lösen mit Ruby und Python AtCoder ARC067 C Primfaktorisierung
Lösen mit Ruby, Perl, Java und Python AtCoder ATC 002 B.
Löse AtCoder ABC168 mit Python (A ~ D)
AtCoder ABC110 C-String-Manipulation zum Lösen in Ruby
AtCoder ABC130 D Kumulative Summen-Dichotomie, gelöst durch Ruby und Python
Lösen mit Ruby, Perl, Java und Python AtCoder AGC 033 Eine Suche mit Breitenpriorität
Lösen mit Ruby, Perl, Java und Python AtCoder CADDi 2018 C Primfaktorisierung
Lösen mit Ruby und Python AtCoder Tenka1 Programmer Contest C Kumulative Summe
Löse AtCoder ABC166 mit Python
AtCoder ABC 182 Python (A ~ D)
AtCoder ARC080 D Simulation mit Ruby und Python gelöst
AtCoder ABC155 Problem D Pairs Review Note 2 NumPy und Python
Scraping mit Node, Ruby und Python
Löse ABC166 A ~ D mit Python
Lösen mit Ruby, Perl, Java und Python AtCoder diverta 2019 Programmierwettbewerb C String Manipulation
AtCoder ABC168 Ein in Ruby und Python gelöster Fallausdruck
AtCoder ARC104 B Kumulative Summe in Ruby, Python und Java gelöst
[AtCoder] Löse ABC1 ~ 100 Ein Problem mit Python
Mit Ruby (Rails) verschlüsseln und mit Python entschlüsseln
Einfaches Web-Scraping mit Python und Ruby
AtCoder ABC 175 Python
Lösen mit Ruby und Python AtCoder ABC172 C Kumulative Summen-Dichotomie
[AtCoder] Lösen Sie ein Problem von ABC101 ~ 169 mit Python
Lösen des Lorenz 96-Modells mit Julia und Python
Fordern Sie AtCoder (ABC) 164 mit Python heraus! A ~ C Problem
[Erklärung zum AtCoder] Kontrollieren Sie die A-, B-, (C), D-Probleme von ABC165 mit Python!
Lösen mit Ruby, Perl, Java und Python AtCoder ARC 066 C Iterativer Square Hash
[Erklärung zum AtCoder] Kontrollieren Sie die A-, B-, C- und D-Probleme von ABC181 mit Python!
Löse AtCoder 167 mit Python
Ruby, Python und Map
Python und Ruby teilen sich
Liste mit Python initialisieren
Probieren Sie die DB-Operation mit Python aus und visualisieren Sie sie mit d3
Vergleich von CoffeeScript mit JavaScript-, Python- und Ruby-Grammatik
Versionsverwaltung von Node, Ruby und Python mit anyenv
AtCoder ABC 177 Python (A ~ E)
Programmieren mit Python und Tkinter
Ver- und Entschlüsselung mit Python
Hellblau mit AtCoder @Python
[AtCoder Erklärung] Kontrollieren Sie ABC180 A, B, C Probleme mit Python!
Python und Hardware-Verwenden von RS232C mit Python-
Python auf Ruby und wütend Ruby auf Python