


C++-Programm zur Berechnung der Gesamtkosten, die ein Roboter ben?tigt, um eine Fahrt in einem Raster abzuschlie?en
Aug 25, 2023 pm 04:53 PMAngenommen, wir haben ein Raster der Gr??e H x B. Jede Zelle im Raster enth?lt eine positive ganze Zahl. Jetzt gibt es einen Wegfindungsroboter, der auf einer bestimmten Zelle (p, q) platziert ist (wobei p die Zeilennummer und q die Spaltennummer ist) und er kann sich zu Zelle (i, j) bewegen. Der Verschiebungsvorgang hat spezifische Kosten von |p – i| + |q – j|. Mittlerweile gibt es q Fahrten mit folgenden Eigenschaften.
Jede Fahrt hat zwei Werte (x, y) und einen gemeinsamen Wert d.
Der Roboter wird auf eine Zelle mit dem Wert x gesetzt und bewegt sich dann zu einer anderen Zelle mit dem Wert x + d.
Dann wird es in eine andere Zelle mit dem Wert x + d + d verschoben. Dieser Vorgang wird fortgesetzt, bis der Roboter eine Zelle mit einem Wert gr??er oder gleich y erreicht.
y - x ist ein Vielfaches von d.
Angesichts dieser Reisen müssen wir die Gesamtkosten jeder Reise ermitteln. Wenn sich der Roboter nicht bewegen kann, betragen die Reisekosten 0.
Wenn die Eingabe also h = 3, w = 3, d = 3, q ????= 1, Gitter = {{2, 6, 8}, {7, 3, 4}, {5, 1, 9 ist }} , tripes = {{3, 9}}, dann ist die Ausgabe 4.
3 auf Zelle (2, 2)
6 auf Zelle (1, 2)
9 auf Zelle (3, 3)
Gesamtkosten = | (1 - 2) + (2 - 2) | (3 - 1) + (3 - 2) | = 4.
Um dieses Problem zu l?sen, werden wir die folgenden Schritte ausführen:
Define one map loc for initialize i := 0, when i < h, update (increase i by 1), do: for initialize j := 0, when j < w, update (increase j by 1), do: loc[grid[i, j]] := new pair(i, j) Define an array dp[d + 1] for initialize i := 1, when i <= d, update (increase i by 1), do: j := i while j < w * h, do: n := j + d if j + d > w * h, then: Come out from the loop dx := |first value of loc[n] - first value of loc[j]| dy := |second value of loc[n] - second value of loc[j]| j := j + d insert dx + dy at the end of dp[i] for initialize j := 1, when j < size of dp[i], update (increase j by 1), do: dp[i, j] := dp[i, j] + dp[i, j - 1] for initialize i := 0, when i < q, update (increase i by 1), do: tot := 0 le := first value of trips[i] ri := second value of trips[i] if ri mod d is same as 0, then: f := d Otherwise, f := ri mod d pxl := (le - f) / d pxr := (ri - f) / d if le is same as f, then: if ri is same as f, then: tot := 0 Otherwise tot := tot + (dp[f, pxr - 1] - 0) Otherwise if ri is same as f, then: tot := 0 Otherwise tot := tot + dp[f, pxr - 1] - dp[f, pxl - 1] print(tot)
Sehen wir uns zum besseren Verst?ndnis die Implementierung unten an ?
Beispiel
#include <bits/stdc++.h> using namespace std; const int INF = 1e9; void solve(int h, int w, int d, int q, vector<vector<int>> grid, vector<pair<int, int>> trips) { map<int, pair<int, int>> loc; for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) loc[grid[i][j]] = make_pair(i, j); } vector<int> dp[d + 1]; for (int i = 1; i <= d; i++) { int j = i; while (j < w * h) { int n = j + d; if (j + d > w * h) break; int dx = abs(loc[n].first - loc[j].first); int dy = abs(loc[n].second - loc[j].second); j += d; dp[i].push_back(dx + dy); } for (j = 1; j < dp[i].size(); j++) dp[i][j] += dp[i][j - 1]; } for (int i = 0; i < q; i++) { int tot = 0; int le, ri; le = trips[i].first; ri = trips[i].second; int f; if (ri % d == 0) f = d; else f = ri % d; int pxl, pxr; pxl = (le - f) / d; pxr = (ri - f) / d; if (le == f){ if (ri == f) tot = 0; else tot += (dp[f][pxr - 1] - 0); } else { if (ri == f) tot = 0; else tot += dp[f][pxr - 1] - dp[f][pxl - 1]; } cout<< tot << endl; } } int main() { int h = 3, w = 3, d = 3, q = 1; vector<vector<int>> grid = {{2, 6, 8}, {7, 3, 4}, {5, 1, 9}}; vector<pair<int, int>> trips = {{3, 9}}; solve(h, w, d, q, grid, trips); return 0; }
Eingabe
3, 3, 3, 1, {{2, 6, 8}, {7, 3, 4}, {5, 1, 9}}, {{3, 9}}
Ausgabe
4
Das obige ist der detaillierte Inhalt vonC++-Programm zur Berechnung der Gesamtkosten, die ein Roboter ben?tigt, um eine Fahrt in einem Raster abzuschlie?en. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

1. Einleitung Derzeit sind die führenden Objektdetektoren zweistufige oder einstufige Netzwerke, die auf dem umfunktionierten Backbone-Klassifizierungsnetzwerk von Deep CNN basieren. YOLOv3 ist ein solcher bekannter hochmoderner einstufiger Detektor, der ein Eingabebild empf?ngt und es in eine gleich gro?e Gittermatrix aufteilt. Für die Erkennung spezifischer Ziele sind Gitterzellen mit Zielzentren zust?ndig. Was ich heute vorstelle, ist eine neue mathematische Methode, die jedem Ziel mehrere Gitter zuordnet, um eine genaue Vorhersage des Begrenzungsrahmens zu erreichen. Die Forscher schlugen au?erdem eine effektive Offline-Datenverbesserung durch Kopieren und Einfügen für die Zielerkennung vor. Die neu vorgeschlagene Methode übertrifft einige aktuelle Objektdetektoren auf dem neuesten Stand der Technik deutlich und verspricht eine bessere Leistung. 2. Das Hintergrundzielerkennungsnetzwerk ist für die Verwendung konzipiert

Ich habe gestern ein interessantes Bild gesehen, das eine ?Ebenenkarte der KI, die menschliche Wege ersetzt“ zeigte. Wie im Bild gezeigt, ist das Spiel in sechs verschiedene Level unterteilt, von E1 bis E8+. Anhand der Abbildung k?nnen wir erkennen, dass künstliche Intelligenz (KI) menschliche Anwendungen in verschiedenen Bereichen ersetzt. Der Anwendungsbereich der künstlichen Intelligenz wird durch ihre Fehlertoleranzrate bestimmt. Kurz gesagt bezieht sich die Fehlertoleranz hier auf die Kosten für Versuch und Irrtum. KI wird nach und nach Branchen mit h?heren bis niedrigeren Fehlertoleranzraten ersetzen und menschliche Berufe nach und nach ?ersetzen“. Früher dachten wir oft, kreative Arbeit beruhe auf menschlichem Denken und sei nicht einfach zu ersetzen. Mit der Entwicklung der künstlichen Intelligenz scheint diese Ansicht jedoch nicht ganz richtig zu sein. In kreativen Berufen gibt es oft keine festen Antworten

1. ?ffnen Sie den Desktop Ihres iPhones, suchen Sie nach [Einstellungen] und klicken Sie darauf, um sie aufzurufen. 2. Klicken Sie auf der Einstellungsseite auf [Kamera], um sie aufzurufen. 3. Klicken Sie, um den Schalter auf der rechten Seite von [Raster] einzuschalten.

CSS-Layout-Tipps: Best Practices für die Implementierung des kreisf?rmigen Rastersymbol-Layouts Das Rasterlayout ist eine g?ngige und leistungsstarke Layouttechnik im modernen Webdesign. Das kreisf?rmige Gittersymbol-Layout ist eine einzigartigere und interessantere Designwahl. In diesem Artikel werden einige Best Practices und spezifische Codebeispiele vorgestellt, die Ihnen bei der Implementierung eines kreisf?rmigen Rastersymbol-Layouts helfen. HTML-Struktur Zuerst müssen wir ein Containerelement einrichten und das Symbol in diesem Container platzieren. Wir k?nnen eine ungeordnete Liste (<ul>) als Container verwenden und die Listenelemente (<l

Seit der Einführung von GPT-3 im Jahr 2020 hat die Popularit?t von ChatGPT die generativen gro? angelegten Sprachmodelle der GPT-Familie erneut ins Rampenlicht gerückt und sie haben bei verschiedenen Aufgaben eine starke Leistung gezeigt. Der enorme Umfang des Modells führt jedoch auch zu h?heren Rechenkosten und erh?hten Schwierigkeiten bei der Bereitstellung. Das Modell GPT-175B verfügt beispielsweise über insgesamt mindestens 320 GB Speicher im Half-Precision-Format (FP16), was für die Inferenz mindestens fünf A100-GPUs mit 80 GB Speicher erfordert. Die Modellkomprimierung ist derzeit eine h?ufig verwendete Methode, um den Rechenaufwand gro?er Modelle zu reduzieren, aber bisher gibt es fast alle

Zusammengestellt von David Linsigao |. Produkte produziert von Yanzheng 51CTO Technology Stack (WeChat ID: blog51cto) Es gibt eine ungeschriebene Regel im Technologiebereich: Jeder nutzt gerne die Technologie anderer Leute. Doch für viele Unternehmen scheint generative KI nicht in dieses Schema zu passen. Generative KI treibt schnell einige wichtige Entscheidungen voran. Jedes Unternehmen steht vor einer wichtigen Entscheidung: ob es intern eine benutzerdefinierte generative KI-Plattform aufbaut oder eine vorgefertigte L?sung von einem KI-Anbieter kauft (h?ufig als Cloud-Service angeboten, was Volumen und M?glichkeiten begünstigt). Es ist seltsam, aber der Grund k?nnte Sie überraschen. Sie k?nnten Sie sogar dazu veranlassen, die GenAI-Strategie Ihres Unternehmens zu überdenken. 1. Vollst?ndige Anpassung und Kontrolle. Schreiben Sie den Inhalt wie folgt um: Erstellen Sie eine

In diesem Artikel erhalten wir ein Problem, bei dem wir die Gesamtzahl der Pfade von Punkt A zu Punkt B ermitteln müssen, wobei A und B feste Punkte sind, d. h. A ist der obere linke Eckpunkt im Gitter und B der untere rechter Eckpunkt, zum Beispiel ?Input:N=5Output:252Input:N=4Output:70Input:N=3Output:20 In dem gegebenen Problem k?nnen wir die Antwort formalisieren und das Ergebnis durch einfache Beobachtungen ableiten. Methode zur L?sungsfindung Bei dieser Methode leiten wir eine Formel ab, indem wir beobachten, dass wir beim überqueren des Gitters von A nach B n-mal nach rechts und n-mal nach unten gehen müssen, was bedeutet, dass wir alle m?glichen Pfadkombinationen finden müssen, also erhalten wir

Wir k?nnen die folgende Technik verwenden, um den günstigsten Weg zu finden, X zu multiplizieren oder seine Zahl nach rechts von 1 nach N zu drehen. Um die anf?nglichen Mindestkosten zu überwachen, erstellen Sie eine Kostenvariable. Wenn Sie von N auf 1 gehen, prüfen Sie auf jeder Stufe, ob N durch X teilbar ist. Wenn dies der Fall ist, dividieren Sie N durch X, um es zu aktualisieren und den Vorgang fortzusetzen. Wenn N nicht durch X teilbar ist, schleifen Sie die Ziffern von N nach rechts, um seinen Wert zu erh?hen. Fügen Sie in diesem Fall die Kostenvariable hinzu. Der endgültige Wert der Kostenvariablen ist der Mindestbetrag, der erforderlich ist, um 1 in N umzuwandeln. Der Algorithmus ermittelt mithilfe numerischer Rotation oder Multiplikation effizient die zur Durchführung der gewünschten Transformation erforderlichen Mindestoperationen. Verwendete Methode: Naiver Ansatz: Rechtsdrehung von Zahlen. Effiziente Methode: Mit X multiplizieren. Einfache Methode: Rechtsdrehung von Zahlen. Der naive Ansatz besteht darin, mit der Zahl 1 zu beginnen und sie wiederholt
