1/*2題意:建立一棵二叉樹,左子樹和父節點佔乙個寬度,右子樹另外佔乙個寬度!
3使任意左右子樹交換順序,使得整個樹的寬度最小!
4思路:遞迴交換左右子樹 !
開始寫的**複雜了,其實左右子樹不用真的交換,只要返回交換與不交換最小的寬度值就好了,下次不用在查詢了!5*/
6 #include7 #include8 #include9 #include10
#define n 10005
11using
namespace
std;
1213
int tree[n][2
];14
intlink[n];
15int
n;16
17int dfs(int
cur)
2324
intmain()
35else
38}39 printf("
%d\n
", dfs(1
));40}41
return0;
42 }
1//這個就是寫複雜了,但是很慶幸的過了!
2 #include3 #include4 #include5 #include6
#define n 10005
7using
namespace
std;89
int tree[n][2
];10
intlink[n];
11int
n, wide;
1213
int dfs(int
cur)
1920
void updatet(int
cur)33}
3435
intmain()
46else
49}50 updatet(1
);51 printf("
%d\n
", wide);52}
53return0;
54 }
ZOJ 3805 Machine(二叉樹,遞迴)
題意 一顆二叉樹,求 寬度 思路 遞迴,貌似這個思路是對的,先記下,但是提交時超時,1.如果當前節點只有左孩子,那麼當前寬度等於左孩子寬度 2.如果當前節點只有右孩子,那麼當前寬度等於右孩子寬度 3.如果當前節點既有左孩子又有孩子 3.1兩個孩子寬度相等,則當前寬度等於其中乙個孩子寬度 1 3.2兩...
Jzoj3805 小X的二叉堆計數
題意 給你n個不同的數問你能構成多少個不同的二叉堆 顯然不能列舉,我們考慮用遞推 我們令f i 表示以i為根的二叉堆有多少種 令l,r為i的左右兒子,令size i 為以i為根的堆的大小 那麼顯然,f i f l f r c size i 1,size l 因為n個數互不相同,所以沒有重複 相當於是...
zoj 1101 二分搜尋
感覺時間複雜度還是太高了,一開始自己寫了個二分搜尋。比stl裡的要慢個幾毫秒。可能是資料量太少了,體現不出來。if 1 include include include include using namespace std define my max 1001 long dight my max i...