


Cari bilangan laluan dengan berat W dalam pokok K-ary menggunakan C++
Dalam artikel ini, kami akan menggunakan C++ untuk mengira bilangan laluan dengan berat W dalam pokok K-ary. Kami telah diberikan pokok K-ary, iaitu pokok di mana setiap nod mempunyai anak K dan setiap tepi mempunyai berat, dengan berat berkurangan daripada 1 kepada K daripada nod kepada semua anak-anaknya.
Kita perlu mengira bilangan kumulatif laluan bermula dari nod akar yang mempunyai berat W dan sekurang-kurangnya satu tepi dengan berat M. Jadi, berikut adalah contoh:
Input : W = 4, K = 3, M = 2 Output : 6
Dalam masalah yang diberikan, kami akan menggunakan dp untuk mengurangkan kerumitan masa dan ruang. Dengan menggunakan penghafalan, kami boleh membuat program kami lebih cepat dan menyesuaikannya dengan kekangan yang lebih besar.
Kaedah
Dalam kaedah ini kita akan melintasi pokok dan menjejaki tepi dengan atau tanpa berat sekurang-kurangnya M dan berat bersamaan dengan W dan kemudian kita menambah jawapan.
Input
#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; }
Output
3
Penjelasan kod di atas
Dalam kaedah ini, mana-mana tepi dengan berat M disertakan sekurang-kurangnya sekali atau tidak. Kedua, kami mengira jumlah berat laluan jika ia sama dengan W.
Kami menambah jawapan dengan satu, menandakan laluan sebagai dilawati, meneruskan melalui semua laluan yang mungkin, dan mengandungi sekurang-kurangnya satu tepi dengan berat lebih besar daripada atau sama dengan M.
Kesimpulan
Dalam kertas ini, kami menggunakan pengaturcaraan dinamik untuk menyelesaikan masalah mencari bilangan laluan dengan berat W dalam pokok k-ary dengan kerumitan masa O(W*K).
Kami juga mempelajari program C++ dan kaedah lengkap (biasa dan cekap) untuk menyelesaikan masalah ini.
Atas ialah kandungan terperinci Cari bilangan laluan dengan berat W dalam pokok K-ary menggunakan C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



微博权重是指微博官方对微博号的评分,主要体现在搜索和评论时的排序,权重越高排序越靠前,因此微博权重也会影响到微博号的流量数据。提高权重可以通过实名制的方式,还可以成为微博的签约自媒体。

Pemahaman mendalam tentang berat dan keutamaan kad bebas pemilih CSS Dalam helaian gaya CSS, pemilih ialah alat penting untuk menentukan elemen HTML yang digunakan untuk gaya. Keutamaan dan berat pemilih menentukan gaya yang digunakan apabila berbilang peraturan digunakan pada elemen HTML pada masa yang sama. Pemilih kad bebas ialah pemilih biasa dalam CSS. Ia diwakili oleh simbol "*", yang bermaksud ia sepadan dengan semua elemen HTML. Pemilih kad bebas adalah mudah tetapi boleh menjadi sangat berguna dalam situasi tertentu. Walau bagaimanapun, berat dan keutamaan pemilih kad bebas juga

Dalam artikel ini, tugas yang diberikan adalah untuk mencari jumlah berat rentetan. Untuk mengira berat tali, kami menukar rentetan yang diberikan kepada bentuk yang lebih rendah. Mengambil kira berat aksara, kita ambil a=1, b=,2 dan seterusnya sehingga z=26. Dalam artikel Python ini, kaedah untuk mencari berat rentetan yang diberikan dibentangkan menggunakan dua contoh berbeza. Dalam contoh pertama, aksara yang diberikan dalam rentetan ialah fetch, hed dan kemudian pemberat masing-masing ditambah pada pemberat yang dikemas kini. Dalam Contoh 2, anda mula-mula mengira kekerapan aksara yang diberikan muncul dalam rentetan, kemudian darabkan kekerapan itu dengan berat aksara yang sepadan, dan kemudian tambah semua berat komponen ini bersama-sama untuk mendapatkan hasil akhir. Contoh 1: Cari berat rentetan dan tambah aksara menggunakan lelaran

Di Douyin, platform video pendek berprofil tinggi, mempunyai akaun berkuasa tinggi adalah impian ramai pengguna. Walau bagaimanapun, untuk beberapa akaun dengan berat badan rendah, cara meningkatkan berat Douyin telah menjadi masalah mendesak yang perlu diselesaikan. Artikel ini bertujuan untuk meneroka cara meningkatkan akaun berwajaran rendah dan berkongsi beberapa kaedah dan teknik yang berkesan. 1. Sediakan kandungan berkualiti tinggi: Tidak kira di platform apa pun, kandungan sentiasa menjadi yang paling penting. Untuk meningkatkan kuasa akaun Douyin anda, anda perlu menyediakan kandungan berkualiti tinggi yang menarik dan unik. Ini bermakna anda harus membuat video yang menarik, berharga dan tersendiri yang akan menarik minat dan bergema dengan khalayak anda. Beri perhatian kepada topik dan trend hangat, sentiasa berinovasi dan mencuba idea baharu, serta menarik lebih banyak perhatian dan suka penonton. 2. Berinteraksi dengan penonton: Secara positif

Dalam artikel ini, kita diberikan masalah di mana kita perlu mencari jumlah bilangan laluan dari titik A ke titik B, di mana A dan B adalah titik tetap, iaitu A ialah titik sudut kiri atas dalam grid dan B ialah Titik Bawah. titik sudut kanan, contohnya −Input:N=5Output:252Input:N=4Output:70Input:N=3Output:20 Dalam masalah yang diberikan, kita boleh merumuskan jawapan dan memperoleh hasilnya melalui pemerhatian mudah. Kaedah mencari penyelesaian Dalam kaedah ini kita memperoleh formula dengan memerhatikan bahawa apabila melintasi grid dari A ke B kita perlu pergi ke kanan n kali dan ke bawah n kali yang bermaksud kita perlu mencari semua kombinasi laluan yang mungkin, jadi kita mendapat

Dalam artikel ini, kami akan menggunakan C++ untuk mengira bilangan laluan dengan berat W dalam pokok K-ary. Kami telah diberikan pokok K-ary, iaitu pokok di mana setiap nod mempunyai anak K dan setiap tepi mempunyai berat, dengan berat berkurangan daripada 1 kepada K daripada nod kepada semua anak-anaknya. Kita perlu mengira bilangan terkumpul laluan bermula dari nod akar yang mempunyai berat W dan sekurang-kurangnya satu tepi dengan berat M. Jadi, berikut ialah contoh: Input:W=4,K=3,M=2Output:6 Dalam masalah yang diberikan, kita akan menggunakan dp untuk mengurangkan kerumitan masa dan ruang. Dengan menggunakan penghafalan, kami boleh membuat program kami lebih cepat dan menyesuaikannya dengan kekangan yang lebih besar. Kaedah Dalam kaedah ini kita akan melintasi pokok dan menjejaki kegunaan

Untuk mencari laluan dengan kelebihan terkecil dengan berat lebih besar daripada atau sama dengan 1, kita boleh menggunakan algoritma Dijkstra dengan sedikit pengubahsuaian. Pertama, kami menetapkan berat nod sumber kepada 1 dan berat nod lain kepada infiniti. Semasa pelaksanaan algoritma, kami tidak lagi mengemas kini jarak, tetapi hasil darab pemberat. Ini memastikan laluan dengan berat terkecil dipilih. Dengan memilih nod dengan berat terkecil pada setiap langkah, kami mencari laluan terpendek secara berulang sehingga nod sasaran dicapai. Akhirnya, hasil darab pemberat di sepanjang laluan ini adalah minimum, memenuhi syarat yang diberikan. Kaedah Digunakan Algoritma Dijkstra yang diubah suai, algoritma Bellman-Ford dengan pengubahsuaian produk berwajaran, produk berwajaran Dijkstra yang diubah suai dengan produk berwajaran

TikTok adalah salah satu platform media sosial paling popular dengan ratusan juta pengguna. Walau bagaimanapun, bagi kebanyakan pencipta Douyin, mereka menghadapi masalah biasa, iaitu berat Douyin yang rendah. Berat Douyin yang rendah bermakna sukar untuk video mereka disyorkan kepada lebih ramai pengguna, sekali gus menjejaskan pendedahan dan pertumbuhan peminat mereka. Jadi, menghadapi masalah ini, bagaimana kita harus meningkatkan berat badan Douyin kita? 1. Bagaimana untuk meningkatkan berat badan rendah Douyin? Pengoptimuman kata kunci ialah kunci untuk meningkatkan berat video Douyin. Apabila menerbitkan video, kita harus memberi perhatian kepada memilih kata kunci yang sesuai, yang akan membantu video itu dicari dan disyorkan. Anda boleh mencari kata kunci yang berkaitan dengan kandungan anda dengan menyelidik kata kunci dan topik yang popular, dan menggunakannya dengan sewajarnya dalam tajuk, perihalan dan teg. Cukup baik
