목차
Method
Input
Output
위 코드 설명
결론
백엔드 개발 C++ C++를 사용하여 K-ary 트리에서 가중치가 W인 경로 수 찾기

C++를 사용하여 K-ary 트리에서 가중치가 W인 경로 수 찾기

Sep 16, 2023 pm 06:09 PM
무게 경로 수 k-ary 나무

C++를 사용하여 K-ary 트리에서 가중치가 W인 경로 수 찾기

이 기사에서는 C++를 사용하여 K-ary 트리에서 가중치 W를 갖는 경로 수를 계산합니다. K-진 트리는 각 노드에 K개의 자식이 있고 각 가장자리에 가중치가 있으며 노드에서 모든 자식까지 가중치가 1에서 K로 감소하는 트리입니다.

가중치 W가 있고 가중치 M이 있는 최소 하나의 가장자리가 있는 루트 노드에서 시작하여 누적 경로 수를 계산해야 합니다. 예를 들면 다음과 같습니다.

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

Output : 6
로그인 후 복사

주어진 문제에서 dp를 사용하여 시간과 공간의 복잡성을 줄입니다. 메모이제이션을 사용하면 프로그램을 더 빠르게 만들고 더 큰 제약 조건에 맞게 조정할 수 있습니다.

Method

이 방법에서는 트리를 순회하고 가중치가 최소 M이고 가중치가 W와 같거나 없는 가장자리를 추적한 다음 답을 증가시킵니다.

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
로그인 후 복사

위 코드 설명

이 방법에서는 가중치 M을 갖는 모든 모서리가 적어도 한 번 포함되거나 포함되지 않습니다. 둘째, W와 같을 경우 경로의 총 가중치를 계산했습니다.

답을 1씩 증가시키고, 경로를 방문한 것으로 표시하고, 가능한 모든 경로를 계속 진행하며, 가중치가 M보다 크거나 같은 간선을 하나 이상 포함합니다.

결론

이 논문에서는 시간 복잡도가 O(W*K)인 k-진 트리에서 가중치가 W인 경로 수를 찾는 문제를 동적 프로그래밍을 사용하여 해결했습니다.

우리는 또한 이 문제를 해결하기 위한 C++ 프로그램과 완전한 방법(일반적이고 효율적인)을 배웠습니다.

위 내용은 C++를 사용하여 K-ary 트리에서 가중치가 W인 경로 수 찾기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 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

이 글에서 주어진 작업은 끈의 총 무게를 구하는 것입니다. 문자열 가중치를 계산하기 위해 주어진 문자열을 더 낮은 형식으로 변환합니다. 문자의 가중치를 고려하여 z=26이 될 때까지 a=1, b=,2 등을 취합니다. 이 Python 기사에서는 주어진 문자열의 가중치를 찾는 방법이 두 가지 다른 예를 사용하여 제시됩니다. 첫 번째 예에서는 문자열의 지정된 문자를 가져오고 hed한 다음 각각의 가중치를 업데이트된 가중치에 추가합니다. 예제 2에서는 먼저 주어진 문자가 문자열에 얼마나 자주 나타나는지 계산한 다음 해당 빈도에 해당 문자 가중치를 곱하고 이러한 구성 요소 가중치를 모두 더하여 최종 결과를 얻습니다. 예제 1: 문자열 가중치 찾기 및 반복을 사용하여 문자 추가

Douyin의 낮은 가중치 계정을 계속 저장할 수 있나요? 이 문제를 해결하는 방법은 무엇입니까? Douyin의 낮은 가중치 계정을 계속 저장할 수 있나요? 이 문제를 해결하는 방법은 무엇입니까? Mar 07, 2024 pm 08:40 PM

세간의 이목을 끄는 단편 동영상 플랫폼인 Douyin에서 권위 있는 계정을 갖는 것은 많은 사용자들의 꿈입니다. 그러나 가중치가 낮은 일부 계정의 경우 Douyin의 가중치를 어떻게 개선할 것인지가 해결해야 할 시급한 문제가 되었습니다. 이 글의 목적은 비중이 낮은 계정을 개선하는 방법을 탐색하고 몇 가지 효과적인 방법과 기술을 공유하는 것입니다. 1. 고품질 콘텐츠 제공: 어떤 플랫폼에 있든 콘텐츠는 항상 가장 중요합니다. Douyin 계정의 권한을 높이려면 매력적이고 독특한 고품질 콘텐츠를 제공해야 합니다. 이는 시청자의 관심을 끌고 공감할 수 있는 흥미롭고, 가치 있고, 독특한 비디오를 만들어야 함을 의미합니다. 뜨거운 주제와 트렌드에 주목하고 끊임없이 혁신하고 새로운 아이디어를 시도하여 더 많은 청중의 관심과 좋아요를 얻으세요. 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-ary 트리에서 가중치가 W인 경로 수 찾기 C++를 사용하여 K-ary 트리에서 가중치가 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를 사용하여 시간과 공간의 복잡성을 줄입니다. 메모이제이션을 사용하면 프로그램을 더 빠르게 만들고 더 큰 제약 조건에 맞게 조정할 수 있습니다. 방법 이 방법에서는 트리를 순회하고 사용을 추적합니다.

가중치가 1보다 크거나 같은 간선이 있는 최소 제품 경로 가중치가 1보다 크거나 같은 간선이 있는 최소 제품 경로 Aug 30, 2023 am 11:37 AM

가중치가 1보다 크거나 같은 가장 작은 가장자리를 가진 경로를 찾기 위해 Dijkstra 알고리즘을 약간 수정하여 사용할 수 있습니다. 먼저 소스 노드의 가중치를 1로 설정하고 다른 노드의 가중치를 무한대로 설정합니다. 알고리즘을 실행하는 동안 더 이상 거리가 업데이트되지 않고 가중치의 곱이 업데이트됩니다. 이렇게 하면 가중치가 가장 작은 경로가 선택됩니다. 각 단계에서 가장 작은 가중치를 갖는 노드를 선택하여 대상 노드에 도달할 때까지 반복적으로 최단 경로를 찾습니다. 마지막으로, 이 경로를 따르는 가중치의 곱은 최소가 되어 주어진 조건을 만족합니다. 사용된 방법 수정된 Dijkstra의 알고리즘, 가중 곱을 수정한 Bellman-Ford 알고리즘, 가중 곱을 사용한 수정된 Dijkstra의 가중 곱

Douyin의 저체중을 개선하는 방법은 무엇입니까? 체중이 적은 이유는 무엇입니까? Douyin의 저체중을 개선하는 방법은 무엇입니까? 체중이 적은 이유는 무엇입니까? Mar 30, 2024 am 09:31 AM

TikTok은 수억 명의 사용자를 보유한 가장 인기 있는 소셜 미디어 플랫폼 중 하나입니다. 그러나 많은 Douyin 창작자들은 Douyin의 무게가 낮다는 공통된 문제에 직면합니다. Douyin의 비중이 낮다는 것은 그들의 동영상이 더 많은 사용자에게 추천되기 어렵고, 따라서 그들의 노출과 팬 성장에 영향을 미친다는 것을 의미합니다. 그렇다면 이 문제에 직면했을 때 우리는 어떻게 Douyin 체중을 향상시켜야 할까요? 1. Douyin의 저체중을 개선하는 방법은 무엇입니까? Douyin 영상의 비중을 높이는 열쇠는 키워드 최적화입니다. 동영상을 게시할 때 적절한 키워드를 선택하는 데 주의를 기울여야 합니다. 이는 동영상 검색 및 추천에 도움이 됩니다. 인기 키워드와 주제를 검색하여 내 콘텐츠와 관련된 키워드를 찾고, 제목, 설명, 태그에 적절하게 사용할 수 있습니다. 그럼 충분해

See all articles