[GO] Über etwas vollständige Suche, die häufig bei Wettkampfprofis auftritt Aus den Augen von Anfängern mit Python

zunaechst

Ich war ein Wettkampfprofi und begann Algorithmen zu studieren. Ich möchte die Bit-Vollsuche, die den Beginn des Algorithmus darstellt, mit der Bedeutung der Ausgabe erklären. Ich bin noch ein junger Student, bitte weisen Sie auf Fehler hin. Ich werde in der Hauptgeschichte des Wettbewerbsprofis schreiben.

Was ist etwas vollständige Suche?

Dies ist eine der Methoden der vollständigen Suche. Diese Technik kann verwendet werden, wenn mehrere Variablen vorhanden sind und jede Variable zwei Werte annimmt. Bit bedeutet 0 und 1 im Computer und nimmt zwei Werte an. Es wird mit verglichen. Ich denke, es ist schwer aus der Erklärung der Charaktere zu verstehen, also werde ich ein Beispiel dafür geben.

Beispiel

0,1 Nur die beiden Nummern von können in die Liste aufgenommen werden. Die Länge der Liste beträgt 3. Listen Sie alle möglichen Listen auf.

Antworten

bit.py


for i in range(2**3): #1
    list=[0]*3 #2
    for k in range(3): #3
        if ((i>>k)&1): #4
            list[k]=1 #5
    print(list)

Kommentar

1 Jedes Element in der Liste hat zwei Typen, 1 oder 0, daher beträgt die Anzahl der Elemente 2 ** (die Anzahl der Elemente). 2 Erstellen Sie eine temporäre Liste. Es wird später entsprechend dem Ergebnis der Bitoperation umgeschrieben. Übrigens ist [0] * 3 = [0,0,0]. 3 Da die Länge der Liste 3 beträgt, können Sie sie bis zu zweimal verschieben. 4 Es ist der Kern der Bit-Vollsuche. i >> k bedeutet, i-mal k nach links zu verschieben. Da & und angibt, bedeutet diese Zeile "i >> k bedeutet, wenn i k-mal nach links verschoben wird und 1 wahr ist".

Beispiel im Wettbewerb pro

https://atcoder.jp/contests/abc045/tasks/arc061_a

Wichtige Sache

Bringen Sie nicht # 2 über die for-Schleife

4 ist der Bitoperator

& Ist das logische Produkt von Bitoperationen, | ist die logische Summe, ^ ist die exklusive logische Summe

Recommended Posts

Über etwas vollständige Suche, die häufig bei Wettkampfprofis auftritt Aus den Augen von Anfängern mit Python
Versuchen Sie, eine vollständige Suche nach der Sequenz durchzuführen, die bei Wettbewerbsprofis mit Python häufig vorkommt
Vollbit-Suche mit Python
Löse mit Python [100 ausgewählte Fragen aus der Vergangenheit, die Anfänger und Fortgeschrittene lösen sollten] (010 --014 Vollständige Suche: Bit vollständige Suche)
Lösen Sie Teilsummenprobleme mit der vollständigen Suche in Python
Lösen Sie mit Python [100 ausgewählte Fragen aus der Vergangenheit, die Anfänger und Fortgeschrittene lösen sollten] (015 --017 Vollständige Suche: Vollständige Suche weiterleiten)
Lerne Nim mit Python (ab Anfang des Jahres).
Suchen Sie den Teil 575 aus Wikipedia in Python
Ein Memorandum über die Umsetzung von Empfehlungen in Python
Python Bit vollständige Suche
Liste meiner Artikel, die für Wettkampfprofis nützlich sein können (von Zeit zu Zeit aktualisiert)
Versuchen Sie, COVID-19 Tokyo-Daten mit Python zu kratzen
Berechnen Sie mit Python Millionen von Stellen in der Quadratwurzel von 2
[Für Anfänger] Zusammenfassung der Standardeingabe in Python (mit Erklärung)
[Homologie] Zählen Sie mit Python die Anzahl der Löcher in den Daten
Google sucht mit Python nach der Zeichenfolge in der letzten Zeile der Datei
Erstellen Sie eine Anwendung, die nur mit der Google Custom Search-API mit Python 3.3.1 in Bottle sucht
Über die Funktionen von Python
Die Geschichte des Erstellens eines Bots, der aktive Mitglieder in einem bestimmten Slack-Kanal mit Python anzeigt
Lösen Sie mit Python [100 ausgewählte Fragen aus der Vergangenheit, die Anfänger und Fortgeschrittene lösen sollten] (005 --- 009 Alle Suche: Alle Aufzählungen, um die Anzahl der Straßen durch Entwickeln zu reduzieren)
Geben Sie den Inhalt von ~ .xlsx im Ordner mit Python in HTML aus
Eine Funktion, die die Verarbeitungszeit einer Methode in Python misst
Lesen Sie die Datei in Python mit einem relativen Pfad aus dem Programm
[Sprechen Sie über die Zeichnungsstruktur von plotly] Dynamische Visualisierung mit plotly [Python]
Visualisieren Sie die Häufigkeit von Wortvorkommen in Sätzen mit Word Cloud. [Python]
Von der Einführung von JUMAN ++ bis zur morphologischen Analyse von Japanisch mit Python
Die Geschichte, ein Modul zu erstellen, das E-Mails mit Python überspringt
Problemumgehungsnotiz bei Segmentierungsfehler: 11 wird beim Import von opencv angezeigt, das mit virtualenv of python installiert wurde
[Abgeschlossene Version] Versuchen Sie, die Anzahl der Einwohner der Stadt anhand der Adressliste mit Python herauszufinden
Analysieren Sie den Quellcode Ihrer eigenen einfachen Suchmaschine, die in Python geschrieben wurde, mit dem Code-Visualisierungstool "SOURCE TRAIL".
Eine Geschichte über das Erstellen eines Programms, mit dem die Anzahl der Instagram-Follower in einer Woche von 0 auf 700 erhöht wird
Existenz aus Sicht von Python
Informationen zur Grundlagenliste der Python-Grundlagen
Lernen Sie die Grundlagen von Python ① Grundlegende Anfänger
Ergebnisse, die bei der Suche mit diesem Wort nicht erfasst wurden
Füllen Sie die Zeichenfolge mit Nullen in Python und zählen Sie bestimmte Zeichen aus der Zeichenfolge
[Python] Untersuchen Sie die Eigenschaften der Titel der Top-Websites in den Google-Suchergebnissen
Lösen Sie mit Python [100 frühere Fragen, die Anfänger und Fortgeschrittene lösen sollten] (028 - 033 Suche nach Breitenpriorität)
Grundlegende Zusammenfassung des Scrapings mit Anfragen, die Anfänger absolut verstehen können [Python]
Extrahieren Sie mit Python Zeilen, die den Bedingungen entsprechen, aus einer Textdatei
Erhalten Sie eine Liste der Ergebnisse der Parallelverarbeitung in Python mit Starmap
Funktionen von Modulen für reguläre Ausdrücke, die in Python häufig persönlich verwendet werden
Den Namen der Methode, die ihn aufgerufen hat, finden Sie in der Python-Methode
Aus einem Buch, das die Denkweise des Programmierers interessanterweise gelernt hat (Python)