Lösen mit Ruby und Python AtCoder ABC153 E Dynamische Planungsmethode

Einführung

Dieses Thema

AtCoder Beginner Contest E - Crested Ibis vs Monster Difficulty: 1009

Dieses Thema, dynamische Planungsmethode

Dies ist ein sogenanntes typisches dynamisches Planungsproblem. Finde die minimale magische Gesamtkraft, die Toki verbraucht, bevor du ein Monster gewinnst. Bitte beachte jedoch, dass es nicht "0" sein muss, nur indem die physische Stärke des Monsters auf "0 oder weniger" gesetzt wird.

Ruby

ruby.rb


h, n = gets.split.map(&:to_i)
a = Array.new(n){gets.split.map(&:to_i)}
dp = Array.new(h + 1, Float::INFINITY)
dp[0] = 0
h.next.times do |i|
  a.each do |x, y|
    if i + x < h && dp[i + x] > dp[i] + y
      dp[i + x] = dp[i] + y
    elsif i + x >= h && dp[h] > dp[i] + y
      dp[h] = dp[i] + y
    end
  end
end
puts dp[h]

ruby.rb


    if i + x < h && dp[i + x] > dp[i] + y
      dp[i + x] = dp[i] + y
    elsif i + x >= h && dp[h] > dp[i] + y
      dp[h] = dp[i] + y
    end

Bei "elsif i + x> = h" wird "dp [h]" als Verarbeitung festgelegt, wenn die physische Stärke des Monsters "0 oder weniger" wird. Python

pypy.py


from sys import stdin, maxsize

def main():
    input = stdin.readline

    h, n = map(int, input().split())
    a = [list(map(int, input().split())) for _ in range(n)]
    dp = [maxsize] * (h + 1)
    dp[0] = 0
    for i in range(h + 1):
        for x, y in a:
            if i + x < h and dp[i + x] > dp[i] + y:
                dp[i + x] = dp[i] + y
            elif i + x >= h and dp[h] > dp[i] + y:
                dp[h] = dp[i] + y
    print(dp[h])
main()

Wenn Sie nicht *** PyPy *** sind, wird es TLE sein.

Ruby Python PyPy
Codelänge(Byte) 336 476 476
Ausführungszeit(ms) 1630 TLE 399
Erinnerung(KB) 2044 3616 41452

Zusammenfassung

Recommended Posts

Lösen mit Ruby und Python AtCoder ABC153 E Dynamische Planungsmethode
Lösen mit Ruby und Python AtCoder ABC178 D Dynamische Planungsmethode
Lösen mit Ruby und Python AtCoder ABC011 C Dynamische Planungsmethode
Lösen mit Ruby und Python AtCoder ABC138 D Benachbarte Liste
Lösen mit Ruby, Python und numpy AtCoder ABC054 B Matrixberechnung
Lösen mit Ruby, Python und networkx AtCoder ABC168 D Benachbarte Liste
Lösen mit Ruby, Perl, Java und Python AtCoder ABC 065 C-te Potenz
Lösen mit Ruby und Python AtCoder ABC057 C Zerlegung des Primfaktors Bit vollständige Suche
Lösen mit Ruby, Perl, Java und Python AtCoder ABC 107 B String-Manipulation
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 ARC 059 C Minimum-Quadrat-Methode
Lösen mit Ruby und Python AtCoder ABC133 D Kumulative Summe
Lösen mit Ruby und Python AtCoder AISING2020 D Iterative Square-Methode
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ösen mit Ruby, Perl, Java und Python AtCoder diverta 2019 Programmierwettbewerb C String Manipulation
Lösen in Ruby, Python und Java AtCoder ABC141 D Priority Queue
AtCoder ABC110 C-String-Manipulation zum Lösen in Ruby
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 ARC 098 C Kumulative Summe
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ösen mit Ruby, Perl, Java und Python AtCoder ABC 047 C Regulärer Ausdruck
Programmieren mit Python und Tkinter
Löse AtCoder ABC166 mit Python
AtCoder ABC 178 Python (A ~ E)
AtCoder ABC 176 Python (A ~ E)
Lösen mit Ruby und Python AtCoder ABC084 D Kumulative Summe der Primzahlen
Lösen mit Ruby und Python AtCoder CODE FESTIVAL 2016 qual C B Priority Queue
Scraping mit Node, Ruby und Python
Dynamischer Proxy mit Python, Ruby, PHP
AtCoder ABC 114 C-755 mit Python3 gelöst
Vorlage AtCoder ABC 179 Python (A ~ E)
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
Löse AtCoder ABC168 mit Python (A ~ D)
Mit Ruby (Rails) verschlüsseln und mit Python entschlüsseln
Einfaches Web-Scraping mit Python und Ruby
AtCoder ABC 174 Python
AtCoder ABC 175 Python
AtCoder ABC130 D Kumulative Summen-Dichotomie, gelöst durch Ruby und Python
Lösen mit Ruby und Python AtCoder ABC172 C Kumulative Summen-Dichotomie
[AtCoder] Lösen Sie ein Problem von ABC101 ~ 169 mit Python
Wie man Spaß am Programmieren mit Minecraft hat (Ruby, Python)
Lösen des Lorenz 96-Modells mit Julia und Python
Fordern Sie AtCoder (ABC) 164 mit Python heraus! A ~ C Problem
Lösen mit Ruby, Perl, Java und Python AtCoder ARC 066 C Iterativer Square Hash
Lösen mit Python [100 frühere Fragen, die Anfänger und Fortgeschrittene lösen sollten] (053 --055 Dynamische Planungsmethode: Andere)
Löse AtCoder 167 mit Python
3. 3. KI-Programmierung mit Python
Python-Programmierung mit Atom
Python und Ruby teilen sich