[GO] Abschnittsplanung Lernnotiz ~ von Python ~

Einführung

Lernnotiz über das Planungsproblem des gierigen Methodenabschnitts

Problem

"B Problem Robot Arms" von Keyence Programming Contest 2020 無題.png

Das Problem, so viele wie möglich für diejenigen mit festen Start- und Endpunkten auszuwählen (Abschnittsplanungsproblem) Löse mit gieriger Methode Die grundlegende Richtlinie besteht darin, den Roboter mit dem kleinsten Endpunkt unter den Robotern auszuwählen, die ausgewählt werden können.

Antworten


N=int(input())
XL=[list(map(int,input().split())) for i in range(N)]
 
R=[]
for i in range(N):
    a=max(0,XL[i][0]-XL[i][1])
    b=XL[i][1]+XL[i][0]
    R.append([b,a])
R.sort()
 
ans=0
con_l=0
for i in range(N):
    if con_l <= R[i][1]:
        ans += 1
        con_l = R[i][0]
print(ans)

Kommentar

① Eingabe


N=int(input())
XL=[list(map(int,input().split())) for i in range(N)]

N ist die Anzahl der Roboter XL ist eine Liste der Koordinaten X und Armlänge L.

② Bearbeiten Sie die Liste

Erstellen Sie eine Liste (R), um den Startpunkt (a) und den Endpunkt (b) des Roboterarms zu speichern


R=[]
for i in range(N):
    a=max(0,XL[i][0]-XL[i][1])
    b=XL[i][1]+XL[i][0]
    R.append([b,a])
R.sort()

Liste R ist in aufsteigender Reihenfolge der Endpunkte sortiert

③ Abschnittsplanung und Ausgabe


ans=0
con_l=0
for i in range(N):
    if con_l <= R[i][1]:
        ans += 1
        con_l = R[i][0]
print(ans)

ans ist die Anzahl der ausgewählten Roboter con_l ist der Endpunkt des zuletzt ausgewählten Roboterarms

Die Verarbeitung in der for-Schleife dient dazu, gierig nach einem Roboter zu suchen, dessen Startpunkt (R [i] [1]) größer ist als der Endpunkt (con_l) des zuletzt ausgewählten Roboters. Da R in aufsteigender Reihenfolge der Endpunkte sortiert ist, wird bei der Suche immer der mit dem kleinsten Endpunkt ausgewählt. Aktualisieren Sie con_l, indem Sie jedes Mal, wenn es gefunden wird, +1 zu ans hinzufügen Ausgabe und Ende

Zusammenfassung

Es war ein typisches Intervallplanungsproblem

Recommended Posts

Abschnittsplanung Lernnotiz ~ von Python ~
Python & maschinelles Lernen Lernnotiz Machine: Maschinelles Lernen durch Rückausbreitung
Python-Klasse (Python-Lernnotiz ⑦)
Python-Modul (Python-Lernnotiz ④)
Visualisierungsnotiz von Python
Python-Lernnotiz für maschinelles Lernen von Chainer aus Kapitel 2
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 1 und 2
Python-Steuerungssyntax, Funktionen (Python-Lernnotiz ②)
Python-Memo
Python-Memo
Zusammenfassung des maschinellen Lernens von Python-Anfängern
Python-Memo
Python lernen
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 7 Regressionsanalyse
Python-Memo
"Scraping & maschinelles Lernen mit Python" Lernnotiz
Python-Memo
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 8 Einführung in Numpy
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 9 Einführung in das Scikit-Lernen
Python-Zahlen, Zeichenfolgen, Listentypen (Python-Lernnotiz ①)
Ali-Buch in Python: Seite 43 Abschnittsplanung
Python-Standardbibliothek: zweite Hälfte (Python-Lernnotiz ⑨)
Python & Machine Learning Study Memo ③: Neuronales Netz
Python & Machine Learning Study Memo ⑥: Zahlenerkennung
Python-Standardbibliothek: Erste Hälfte (Python-Lernnotiz ⑧)
LPIC201 Studiennotiz
[Python] Lernnotiz 1
Python-Anfänger-Memo (9.2-10)
Python-Lernnotizen
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 13 Training für neuronale Netze ~ Chainer abgeschlossen
Django Lernnotiz
Python-Anfänger-Memo (9.1)
Python-Lernausgabe
Python-Lernseite
★ Memo ★ Python Iroha
Python-Lerntag 4
[Python] EDA-Memo
Python Deep Learning
Python 3-Operator-Memo
Python-Lernen (Ergänzung)
Deep Learning × Python
[Memo] Maschinelles Lernen
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 13 Grundlagen des neuronalen Netzwerks
[Mein Memo] Python
Python3-Metaklassen-Memo
[Python] Grundkarten-Memo
Python-Lernnotiz für maschinelles Lernen von Chainer bis zum Ende von Kapitel 2
Python-Anfänger-Memo (2)
Python-Lernnotizen
[Python] Numpy Memo
Python & Machine Learning Study Memo ⑤: Klassifikation von Ayame
Python & Machine Learning Study Memo Introduction: Einführung in die Bibliothek
Videorahmeninterpolation durch tiefes Lernen Teil 1 [Python]
Hinweise zum Erstellen einer Python-Umgebung durch Anfänger
progate Python-Lernnotiz (von Zeit zu Zeit aktualisiert)
Python & Machine Learning Study Memo ⑦: Aktienkursprognose
Primzahlbeurteilung durch Python
[Keras] Persönliches Memo zum Klassifizieren von Bildern nach Ordner [Python]