NOIP 2003 加分二叉樹

2021-08-09 14:16:27 字數 572 閱讀 1590

評測傳送

這個題可以記憶化搜尋做的。

注意邊界條件。

對於先序遍歷,遞迴就可以了(在dfs的時候用乙個陣列記錄根節點就可以了)。

#include

#include

#include

#include

#include

#include

#define ll long long

using

namespace

std;

int n;

ll a[50],ans,sum;

int way[50][50];

ll f[50][50];

ll dfs(int l,int r)

}return f[l][r]=tot;

}void print(int l,int r)

printf("%d ",way[l][r]);

print(l,way[l][r]-1);

print(way[l][r]+1,r);

}int main()

NOIP 2003 加分二叉樹

問題描述 設乙個n個節點的二叉樹tree的中序遍歷為 l,2,3,n 其中數字1,2,3,n為節點編號。每個節點都有乙個分數 均為正整數 記第j個節點的分數為di,tree及它的每個子樹都有乙個加分,任一棵子樹subtree 也包含tree本身 的加分計算方法如下 subtree的左子樹的加分 su...

NOIP2003 加分二叉樹題解

設乙個n 個節點的二叉樹t 的中序遍歷為 1,2,3,n 其中數字 1,2,3,n 為節點編號。每個節點都有乙個分數 均為正整數 記第j 個節點的分數為dj。二叉樹t 及它的每個子樹都有 乙個加分,任意一棵子樹s 包括t 本身 的加分等於s 的左子樹的加分 s 的右子樹的加分 s的根的分數。若某棵子...

noip 2003 加分二叉樹(DP)

題目鏈結 思路 用乙個二維陣列dp i,j 表示中序遍歷中從 i 到 j 的區間組成的子樹的集合,dp i,j 的值表示這些子樹中得分的最大值,轉移方程很簡單,dp i,j max dp i,j dp i,k 1 dp k 1,r 需要遍歷 i 到 j 的每乙個點,判斷哪乙個是根節點,然後根據根節點...