目錄
方法
輸入
輸出
上述程式碼的解釋
結論
首頁 後端開發 C++ 使用C++找到K叉樹中權重為W的路徑數

使用C++找到K叉樹中權重為W的路徑數

Sep 16, 2023 pm 06:09 PM
權重 路徑數 k叉樹

使用C++找到K叉樹中權重為W的路徑數

在本文中,我們將使用C 來計算K叉樹中權重為W的路徑數。我們已經給了一個K叉樹,它是一棵每個節點有K個子節點且每條邊都有一個權重的樹,權重從1到K遞減從一個節點到其所有子節點。

我們需要計算從根節點開始的累積路徑數,這些路徑具有權重為W且至少有一條邊的權重為M。所以,這是一個例子:

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

Output : 6
登入後複製

在給定的問題中,我們將使用dp來減少時間和空間複雜度。透過使用記憶化,我們可以使我們的程序更快,並使其適用於更大的約束。

方法

在這個方法中,我們將遍歷樹,並追蹤使用或不使用至少為M的權重的邊,且權重等於W,然後我們增加答案。

輸入

#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;
}
登入後複製

輸出

3
登入後複製

上述程式碼的解釋

在這種方法中,至少包含一次或不包含任何權重為M的邊。其次,我們計算了路徑的總權重,如果它等於W。

我們將答案增加一,將該路徑標記為已訪問,繼續通過所有可能的路徑,並至少包含一條權重大於或等於M的邊。

結論

在本文中,我們使用動態規劃解決了在k叉樹中找到權重為W的路徑數的問題,時間複雜度為O(W*K )

我們也學習了解決這個問題的C 程式和完整的方法(普通和高效)。

以上是使用C++找到K叉樹中權重為W的路徑數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

微博權重是什麼意思 微博權重是什麼意思 Dec 11, 2020 pm 02:36 PM

微博權重是指微博官方對微博號的評分,主要體現在搜尋和評論時的排序,權重越高排序越靠前,因此微博權重也會影響到微博號的流量資料。提高權重可以透過實名制的方式,還可以成為微博的簽約自媒體。

了解CSS選擇器通配符的權重和優先順序的深層理解 了解CSS選擇器通配符的權重和優先順序的深層理解 Dec 26, 2023 pm 01:36 PM

深入理解CSS選擇器通配符的權重和優先權在CSS樣式表中,選擇器是用來指定樣式套用於哪些HTML元素的重要工具。選擇器的優先權和權重決定了當多個規則同時作用於一個HTML元素時,要套用哪個樣式。通配符選擇器是CSS中常見的選擇器。它使用“*”符號表示,表示匹配所有HTML元素。通配符選擇器雖然簡單,但在某些情況下非常有用。然而,通配符選擇器的權重和優先權也

Python程式找到字串的權重 Python程式找到字串的權重 Sep 04, 2023 pm 08:09 PM

在本文中,給定的任務是找到字串的總重量。為了計算字串權重,我們將給定的字串轉換為較低的形式。考慮到字元的重量,我們取a=1、b=,2等等,直到z=26。在這篇Python文章中,使用兩個不同的範例,給出了尋找給定字串的權重的方法。在第一個範例中,字串中的給定字元為fetc、hed,然後將它們各自的權重加入更新後的權重。在範例2中,首先計算給定字元在字串中出現的頻率,然後將該頻率乘以對應的字元權重,然後將所有這些分量權重加在一起得到最終結果。範例1:使用迭代查找字串權重並新增字符

抖音低權重號還有救嗎?如何補救? 抖音低權重號還有救嗎?如何補救? Mar 07, 2024 pm 08:40 PM

在抖音這備受矚目的短影音平台上,擁有一個高權重的帳號是眾多用戶夢寐以求的。然而,對於一些低權重的帳號來說,如何提升抖音權重成為了一個亟需解決的問題。本文旨在探討低權重帳號的提升之道,分享一些有效的方法與技巧。 1.提供優質內容:無論在什麼平台上,內容始終是最重要的。為了提升抖音帳號的權重,你需要提供具有吸引力和獨特性的優質內容。這意味著你應該創作出有趣、有價值和與眾不同的視頻,能夠引起觀眾的興趣和共鳴。關注熱門話題和流行潮流,不斷創新和嘗試新的創意,吸引更多的觀眾關注和點讚。 2、與觀眾互動:積極

使用C++編程,找到在網格中從一個點到另一個點的路徑數 使用C++編程,找到在網格中從一個點到另一個點的路徑數 Aug 29, 2023 pm 10:25 PM

在本文中,我們給了一個問題,我們需要找到從點A到點B的總路徑數,其中A和B是固定點,即A是網格中的左上角點,B是網格中的右下角點,例如−Input:N=5Output:252Input:N=4Output:70Input:N=3Output:20在給定的問題中,我們可以透過簡單的觀察來形式化答案並得出結果。尋找解決方案的方法在這種方法中,我們透過觀察得出一個公式,即從A到B穿過網格時,我們需要向右行進n次,向下行進n次,這意味著我們需要找到所有可能的路徑組合,因此我們得到了

使用C++找到K叉樹中權重為W的路徑數 使用C++找到K叉樹中權重為W的路徑數 Sep 16, 2023 pm 06:09 PM

在本文中,我們將使用C++來計算K叉樹中權重為W的路徑數。我們已經給了一個K叉樹,它是一棵每個節點有K個子節點且每條邊都有一個權重的樹,權重從1到K遞減從一個節點到其所有子節點。我們需要計算從根節點開始的累積路徑數,這些路徑具有權重為W且至少有一條邊的權重為M。所以,這是一個例子:Input:W=4,K=3,M=2Output:6在給定的問題中,我們將使用dp來減少時間和空間複雜度。透過使用記憶化,我們可以使我們的程序更快,並使其適用於更大的約束。方法在這個方法中,我們將遍歷樹,並追蹤使用

抖音權重低怎麼提升?權重低是什麼原因造成的? 抖音權重低怎麼提升?權重低是什麼原因造成的? Mar 30, 2024 am 09:31 AM

抖音作為目前最熱門的社群媒體平台之一,擁有數以億計的用戶。然而,對許多抖音創作者來說,他們面臨著一個共同的問題,那就是抖音權重低。抖音權重低意味著他們的影片很難被推薦給更多的用戶,從而影響了他們的曝光和粉絲成長。那麼,面對這個問題,我們該如何提升自己的抖音權重呢?一、抖音權重低怎麼提升?關鍵字優化是提升抖音影片權重的關鍵。在發布影片的時候,我們要注意選擇適合的關鍵字,這樣有利於影片被搜尋和推薦。可以透過研究流行的關鍵字和話題,找到與自己內容相關的關鍵字,並在標題、描述、標籤中合理運用。還可以

具有權重大於等於1的邊的最小乘積路徑 具有權重大於等於1的邊的最小乘積路徑 Aug 30, 2023 am 11:37 AM

為了發現具有權重大於或等於1的最小邊的路徑,我們可以使用稍作修改的Dijkstra演算法。首先,我們將來源節點的權重設為1,將其他節點的權重設為無限大。在演算法執行過程中,我們不再更新距離,而是更新權重的乘積。這樣可以確保選擇具有最小權重的路徑。透過在每一步選擇權重最小的節點,我們迭代地發現最短路徑,直到達到目標節點。最後,沿著這條路徑的權重乘積將是最小的,滿足給定的條件。使用的方法修改後的Dijkstra演算法,具有加權乘積修改的Bellman-Ford演算法,帶有加權乘積加權乘積的改進Dijkstra

See all articles