日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

牛客国庆集训派对Day2 F、平衡二叉树 【构造+记忆化搜索】

發布時間:2025/5/22 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 牛客国庆集训派对Day2 F、平衡二叉树 【构造+记忆化搜索】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

任意門:https://www.nowcoder.com/acm/contest/202/F

時間限制:C/C++ 1秒,其他語言2秒
空間限制:C/C++ 1048576K,其他語言2097152K
64bit IO Format: %lld

題目描述?

平衡二叉樹,顧名思義就是一棵“平衡”的二叉樹。在這道題中,“平衡”的定義為,對于樹中任意一個節點,都滿足左右子樹的高度差不超過 d. 空樹的高度定義為0,單個節點的高度為1,其他情況下樹的高度定義為根節點左右子樹高度最大值 + 1. 一棵在高度上平衡的樹,節點數可能不平衡,因此再定義一棵樹的不平衡度為這棵樹中所有節點的左右子樹的節點數之差的最大值。
給定平衡的定義參數d, 你需要求出所有高度為 n 的平衡樹中不平衡度的最大值。

輸入描述:

兩個整數,n, d.

輸出描述:

一個整數:所有高度為 n 的平衡樹中不平衡度的最大值。 示例1

輸入

復制 4 1

輸出

復制 5

說明

下面這棵樹在 d=1 的定義下高度是平衡的,其不平衡度為 5。

備注:

0 ≤ n, d ≤ 60

?

?

題意概括:

不要被題目蒙騙了,這是一道找規律和構造的題目。

tip:注意是所有左右子樹的高度差為 d,不平衡度也是所有左右子樹比較后的最大的那個。

解題思路:

思路很清晰嘛,第一個左結點為根的子樹為滿二叉樹,第一個右結點的子樹以盡量少的結點數構成一顆滿足條件的二叉樹,答案為這兩顆子樹的結點之差。

第一個左子樹為滿二叉樹,左子樹結點數 2^(N-1)-1; (快速冪)

那右邊的那一半呢就進行構造建樹吧,具體實現為 dfs ,每次構造它的左子樹和右子樹,直到達到需要的高度。但是一開始純dfs是肯定超時,這時候需要記憶化搜索優化一下。

?

AC code:

1 #include <cstdio> 2 #include <iostream> 3 #include <algorithm> 4 #include <cstring> 5 #define LL long long 6 using namespace std; 7 LL dp[100][100]; 8 int N,d; 9 10 LL dfs(int h, int step) 11 { 12 if(dp[h][step] != -1) return dp[h][step]; 13 LL sum = 1LL; 14 if(step == h) {dp[h][step] = sum; return sum;} 15 sum += dfs(h, step+1); //左子樹 16 if(step >= h-d) {dp[h][step] = sum; return sum;} 17 sum += dfs(h-d, step+1); //右子樹 18 dp[h][step] = sum; 19 return sum; 20 } 21 22 LL qpow(int x, int n) 23 { 24 LL ans = 1, base = x; 25 while(n != 0){ 26 if(n&1!=0) ans*=base; 27 base*=base; 28 n>>=1; 29 } 30 return ans; 31 } 32 33 int main() 34 { 35 //d = 1; 36 //printf("%d\n", dfs(3, 1)); 37 LL L, R; 38 //while(~scanf("%lld%lld", &N, &d)){ 39 scanf("%d%d", &N, &d); 40 memset(dp, -1, sizeof(dp)); 41 if(N == 0 || d == 0) L = 0, R = 0; 42 else{ 43 L = qpow(2, N-1)-1; 44 if(d >= N-1 ) R = 0; 45 else R = dfs(N-d, 2); 46 } 47 //printf("L:%lld R:%lld\n", L, R); 48 printf("%lld\n", L-R); 49 //} 50 return 0; 51 } View Code

?

轉載于:https://www.cnblogs.com/ymzjj/p/9738943.html

總結

以上是生活随笔為你收集整理的牛客国庆集训派对Day2 F、平衡二叉树 【构造+记忆化搜索】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美在线观看免费高清 | 欧美黄色一级 | 巨乳在线播放 | 黄色网页在线看 | 超碰97国产 | 亚洲 欧美 变态 另类 综合 | 亚洲国产成人精品视频 | www黄色网址 | 91免费黄| 亚洲黄色片网站 | 91av在线看| 毛片一级视频 | 一区二区三区黄色片 | 四虎永久网站 | 精品第一页 | 18禁裸乳无遮挡啪啪无码免费 | 伊人天天干| 欧美日韩免费在线视频 | 亚洲欧洲av在线 | 亚洲少妇一区 | 麻豆av在线播放 | 国产日韩欧美精品在线观看 | 夜夜欢视频 | 五月婷婷啪啪 | 一区二区片 | 欧美精品一二三 | 午夜av一区| 久久精品一区二区三区黑人印度 | 色网站免费看 | 国产精品人成在线观看免费 | 成人国产一区二区三区精品麻豆 | 91精品国产乱码久久 | 亚洲性生活大片 | 丰满少妇一区二区三区专区 | 成人免费毛片观看 | 欧美在线影院 | 黄色成人在线视频 | 亚洲毛片在线播放 | 91精品视频在线免费观看 | 亚洲国产黄色片 | 全黄一级播放 | 狼人伊人干 | 18岁成年人网站 | 国产区一区二区三 | 免费黄色资源 | 午夜丁香网| 亚洲精品一线 | 亚洲吧 | 97夜夜 | 中文天堂在线播放 | 青草草在线| 国产一区中文字幕 | 久久久成人精品一区二区三区 | 汗汗视频 | 成人福利在线视频 | 女人18毛片水真多18精品 | 天堂中文视频 | 亚洲国产tv | 免费看一级 | 亚洲高清av在线 | 国产欧美精品一区二区三区 | www.色多多| 在线一区二区不卡 | 亚洲精品99999 | 一区二区三区高清 | 老熟妇仑乱一区二区av | 亚洲av综合一区二区 | 日韩一级片网址 | 91成人网页 | 日韩精品一区二区在线看 | 亚洲青青操 | 天堂av亚洲| 亚色在线视频 | 日韩天堂在线观看 | 不卡av中文字幕 | 91国自产精品中文字幕亚洲 | 国产精品va无码一区二区三区 | 无码专区久久综合久中文字幕 | jizzjizz日本免费视频 | 中文字幕在线观看播放 | 小明天天看 | 成人免费xxxxx在线观看 | 深夜福利久久 | 久久久久逼 | 森泽佳奈作品在线观看 | 永久免费未满视频 | 免费激情小视频 | 四虎中文字幕 | 精品国产三级 | 天天撸天天操 | 欧美日韩影院 | 欧美日韩精品一区二区三区四区 | 帮我拍拍漫画全集免费观看 | 天天操,夜夜操 | 1024亚洲 | 欧美精品一二 | 午夜婷婷在线观看 | 99riav国产在线观看 | 国产又粗又黄 |