Inhaltsverzeichnis
Methode
Eingabe
Ausgabe
Erklärung des obigen Codes
Fazit
Heim Backend-Entwicklung C++ Ermitteln Sie mit C++ die Anzahl der Pfade mit der Gewichtung W in einem K-ary-Baum

Ermitteln Sie mit C++ die Anzahl der Pfade mit der Gewichtung W in einem K-ary-Baum

Sep 16, 2023 pm 06:09 PM
权重 路径数量 K-ary-Baum

Ermitteln Sie mit C++ die Anzahl der Pfade mit der Gewichtung W in einem K-ary-Baum

In diesem Artikel verwenden wir C++, um die Anzahl der Pfade mit der Gewichtung W in einem K-ary-Baum zu zählen. Uns wurde ein K-ary-Baum gegeben, ein Baum, in dem jeder Knoten K Kinder hat und jede Kante ein Gewicht hat, wobei das Gewicht von 1 auf K von einem Knoten zu allen seinen Kindern abnimmt.

Wir müssen die kumulative Anzahl der Pfade zählen, die vom Wurzelknoten beginnen und die Gewichtung W und mindestens eine Kante mit der Gewichtung M haben. Hier ist ein Beispiel:

Input : W = 4, K = 3, M = 2

Output : 6
Nach dem Login kopieren

Im gegebenen Problem werden wir dp verwenden, um die zeitliche und räumliche Komplexität zu reduzieren. Durch die Memoisierung können wir unsere Programme schneller machen und sie an größere Einschränkungen anpassen.

Methode

Bei dieser Methode durchqueren wir den Baum und verfolgen Kanten mit oder ohne Gewicht von mindestens M und einem Gewicht gleich W und erhöhen dann die Antwort.

Eingabe

#include <bits/stdc++.h>
using namespace std;
int solve(int DP[][2], int W, int K, int M, int used){
   if (W < 0) // if W becomes less than 0 then return 0
       return 0;
    if (W == 0) {
        if (used) // if used is not zero then return 1
           return 1; //as at least one edge of weight M is included
       return 0;
   }
    if (DP[W][used] != -1) // if DP[W][used] is not -1 so that means it has been visited.
       return DP[W][used];
    int answer = 0;
   for (int i = 1; i <= K; i++) {
        if (i >= M)
           answer += solve(DP, W - i, K, M, used | 1); // if the condition is true
                                                    //then we will change used to 1.
       else
           answer += solve(DP, W - i, K, M, used);
   }
   return answer;
}
int main(){
   int W = 3; // weight.
   int K = 3; // the number of children a node has.
   int M = 2; // we need to include an edge with weight at least 2.
   int DP[W + 1][2]; // the DP array which will
   memset(DP, -1, sizeof(DP)); // initializing the array with -1 value
   cout << solve(DP, W, K, M, 0) << "\n";
   return 0;
}
Nach dem Login kopieren

Ausgabe

3
Nach dem Login kopieren

Erklärung des obigen Codes

Bei dieser Methode werden Kanten mit dem Gewicht M mindestens einmal einbezogen oder nicht. Zweitens haben wir das Gesamtgewicht des Pfades berechnet, wenn es gleich W ist.

Wir erhöhen die Antwort um eins, markieren den Pfad als besucht, fahren mit allen möglichen Pfaden fort und enthalten mindestens eine Kante mit einem Gewicht größer oder gleich M.

Fazit

In diesem Artikel haben wir dynamische Programmierung verwendet, um das Problem zu lösen, die Anzahl der Pfade mit dem Gewicht W in einem k-ary-Baum mit einer zeitlichen Komplexität von O(W*K) zu finden.

Wir haben auch ein C++-Programm und eine vollständige Methode (allgemein und effizient) gelernt, um dieses Problem zu lösen.

Das obige ist der detaillierte Inhalt vonErmitteln Sie mit C++ die Anzahl der Pfade mit der Gewichtung W in einem K-ary-Baum. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was bedeutet Weibo-Gewicht? Was bedeutet Weibo-Gewicht? Dec 11, 2020 pm 02:36 PM

Das Weibo-Gewicht bezieht sich auf die offizielle Weibo-Bewertung von Weibo-Konten, die sich hauptsächlich im Ranking bei Suchanfragen und Kommentaren widerspiegelt. Je höher das Gewicht, desto höher das Ranking. Daher wirkt sich das Weibo-Gewicht auch auf die Verkehrsdaten von Weibo-Konten aus. Das Gewicht kann durch das System mit echten Namen erhöht werden, oder indem man ein vertraglich vereinbarter Selbstvermittler auf Weibo wird.

Erhalten Sie ein tiefes Verständnis für die Gewichtung und Priorität von CSS-Selektor-Platzhaltern Erhalten Sie ein tiefes Verständnis für die Gewichtung und Priorität von CSS-Selektor-Platzhaltern Dec 26, 2023 pm 01:36 PM

Detailliertes Verständnis der Gewichtung und Priorität von CSS-Selektor-Platzhaltern. In CSS-Stylesheets sind Selektoren ein wichtiges Werkzeug zum Angeben, auf welche HTML-Elemente der Stil angewendet wird. Die Priorität und Gewichtung des Selektors bestimmen, welcher Stil angewendet wird, wenn mehrere Regeln gleichzeitig auf ein HTML-Element angewendet werden. Platzhalterselektoren sind ein häufiger Selektor in CSS. Es wird durch das Symbol „*“ dargestellt, was bedeutet, dass es mit allen HTML-Elementen übereinstimmt. Platzhalterselektoren sind einfach, können aber in bestimmten Situationen sehr nützlich sein. Allerdings auch das Gewicht und die Priorität von Wildcard-Selektoren

Python-Programm zum Ermitteln des Gewichts eines Strings Python-Programm zum Ermitteln des Gewichts eines Strings Sep 04, 2023 pm 08:09 PM

In diesem Artikel besteht die Aufgabe darin, das Gesamtgewicht einer Zeichenfolge zu ermitteln. Um das String-Gewicht zu berechnen, konvertieren wir den gegebenen String in eine niedrigere Form. Unter Berücksichtigung der Zeichengewichtung nehmen wir a=1, b=,2 usw. bis z=26. In diesem Python-Artikel wird anhand von zwei verschiedenen Beispielen eine Methode zum Ermitteln der Gewichtung einer bestimmten Zeichenfolge vorgestellt. Im ersten Beispiel werden die angegebenen Zeichen in der Zeichenfolge abgerufen, gesichert und dann werden ihre jeweiligen Gewichtungen zu den aktualisierten Gewichtungen addiert. In Beispiel 2 berechnen Sie zunächst, wie oft ein bestimmtes Zeichen in der Zeichenfolge vorkommt, multiplizieren dann diese Häufigkeit mit der entsprechenden Zeichengewichtung und addieren dann alle diese Komponentengewichtungen, um das Endergebnis zu erhalten. Beispiel 1: Ermitteln Sie die Zeichenfolgenstärke und fügen Sie mithilfe der Iteration Zeichen hinzu

Können Douyins niedrig gewichtete Konten noch gerettet werden? Wie lässt sich das beheben? Können Douyins niedrig gewichtete Konten noch gerettet werden? Wie lässt sich das beheben? Mar 07, 2024 pm 08:40 PM

Auf Douyin, einer hochkarätigen Kurzvideoplattform, ist es der Traum vieler Nutzer, über ein Konto mit hoher Autorität zu verfügen. Für einige Konten mit geringem Gewicht ist die Verbesserung des Douyin-Gewichts jedoch zu einem dringenden Problem geworden, das gelöst werden muss. Ziel dieses Artikels ist es, zu untersuchen, wie sich Konten mit geringem Gewicht verbessern lassen, und einige wirksame Methoden und Techniken vorzustellen. 1. Stellen Sie qualitativ hochwertige Inhalte bereit: Egal auf welcher Plattform, Inhalte sind immer das Wichtigste. Um die Autorität Ihres Douyin-Kontos zu erhöhen, müssen Sie qualitativ hochwertige Inhalte bereitstellen, die attraktiv und einzigartig sind. Das bedeutet, dass Sie interessante, wertvolle und unverwechselbare Videos erstellen sollten, die Ihr Publikum interessieren und bei ihm Anklang finden. Achten Sie auf aktuelle Themen und Trends, entwickeln Sie ständig neue Ideen und probieren Sie sie aus, um mehr Aufmerksamkeit und Likes beim Publikum zu erregen. 2. Interagieren Sie mit dem Publikum: Positiv

Ermitteln Sie beim Programmieren in C++ die Anzahl der Pfade von einem Punkt zu einem anderen in einem Raster Ermitteln Sie beim Programmieren in C++ die Anzahl der Pfade von einem Punkt zu einem anderen in einem Raster Aug 29, 2023 pm 10:25 PM

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

Ermitteln Sie mit C++ die Anzahl der Pfade mit der Gewichtung W in einem K-ary-Baum Ermitteln Sie mit C++ die Anzahl der Pfade mit der Gewichtung W in einem K-ary-Baum Sep 16, 2023 pm 06:09 PM

In diesem Artikel verwenden wir C++, um die Anzahl der Pfade mit der Gewichtung W in einem K-ary-Baum zu zählen. Uns wurde ein K-ary-Baum gegeben, ein Baum, in dem jeder Knoten K Kinder hat und jede Kante ein Gewicht hat, wobei das Gewicht von 1 auf K von einem Knoten zu allen seinen Kindern abnimmt. Wir müssen die kumulative Anzahl der Pfade zählen, die vom Wurzelknoten ausgehen und die Gewichtung W und mindestens eine Kante mit der Gewichtung M haben. Hier ist ein Beispiel: Input:W=4,K=3,M=2Output:6 Im gegebenen Problem werden wir dp verwenden, um die zeitliche und räumliche Komplexität zu reduzieren. Durch die Memoisierung können wir unsere Programme schneller machen und sie an größere Einschränkungen anpassen. Methode In dieser Methode durchlaufen wir den Baum und verfolgen die Verwendung von

Minimaler Produktpfad mit Kanten mit einem Gewicht größer oder gleich 1 Minimaler Produktpfad mit Kanten mit einem Gewicht größer oder gleich 1 Aug 30, 2023 am 11:37 AM

Um den Pfad mit der kleinsten Kante mit einem Gewicht größer oder gleich 1 zu finden, können wir mit einer leichten Modifikation den Dijkstra-Algorithmus verwenden. Zuerst setzen wir die Gewichtung des Quellknotens auf 1 und die Gewichtung der anderen Knoten auf unendlich. Während der Ausführung des Algorithmus aktualisieren wir nicht mehr die Distanz, sondern das Produkt der Gewichte. Dadurch wird sichergestellt, dass der Pfad mit dem geringsten Gewicht ausgewählt wird. Indem wir bei jedem Schritt den Knoten mit dem geringsten Gewicht auswählen, ermitteln wir iterativ den kürzesten Weg, bis der Zielknoten erreicht ist. Schließlich wird das Produkt der Gewichte entlang dieses Pfades minimal sein und die gegebene Bedingung erfüllen. Verwendete Methoden: Modifizierter Dijkstra-Algorithmus, Bellman-Ford-Algorithmus mit gewichteter Produktmodifikation, modifiziertes Dijkstra-gewichtetes Produkt mit gewichtetem Produkt

Wie kann man das geringe Gewicht von Douyin verbessern? Was ist der Grund für das geringe Gewicht? Wie kann man das geringe Gewicht von Douyin verbessern? Was ist der Grund für das geringe Gewicht? Mar 30, 2024 am 09:31 AM

TikTok ist mit Hunderten Millionen Nutzern eine der beliebtesten Social-Media-Plattformen. Allerdings stehen viele Douyin-Schöpfer vor einem gemeinsamen Problem: dem geringen Gewicht des Douyin. Das geringe Gewicht von Douyin bedeutet, dass es für ihre Videos schwierig ist, mehr Nutzern empfohlen zu werden, was sich auf ihre Bekanntheit und ihr Fanwachstum auswirkt. Wie sollten wir angesichts dieses Problems unser Douyin-Gewicht verbessern? 1. Wie kann man das geringe Gewicht von Douyin verbessern? Die Keyword-Optimierung ist der Schlüssel zur Verbesserung des Gewichts von Douyin-Videos. Bei der Veröffentlichung eines Videos müssen wir auf die Auswahl geeigneter Schlüsselwörter achten, die dazu beitragen, dass das Video gesucht und empfohlen wird. Sie können Schlüsselwörter finden, die sich auf Ihre Inhalte beziehen, indem Sie nach beliebten Schlüsselwörtern und Themen suchen und diese entsprechend in Titeln, Beschreibungen und Tags verwenden. Gut genug

See all articles