29. //因此這里有兩個A,一個B
30.
31.
32. //在return之前進行析構
33. //
34. /析構是按照定義對象的反順序來的,而且同一個對象按照構造的反順序來的,因此這里先
35. 析構b然后才是a,那么b的構造順序是上面的A()->_a->B()(局部),反過來,就是B()(局部)->_a->A()
36. 因此得到的就是~B->~A->~A
37. 在b之后就是析構a
38. 最后結果就是
39. ~B->~A->~A->~A/
40. return 0;
41. }
42. 23、一個骰子,6面,1個面是 1, 2個面是2, 3個面是3,問平均擲多少次能使1、2、3都至少出現一次!
43. 24、問題描述:
12個高矮不同的人,排成兩排,每排必須是從矮到高排列,而且第二排比對應的第一排的人高,問排列方式有多少種?
這個筆試題,很YD,因為把某個遞歸關系隱藏得很深.
44. 問題分析:
我們先把這12個人從低到高排列,然后,選擇6個人排在第一排,那么剩下的6個肯定是在第二排.
用0表示對應的人在第一排,用1表示對應的人在第二排,那么含有6個0,6個1的序列,就對應一種方案.
比如000000111111就對應著
第一排:0 1 2 3 4 5
第二排:6 7 8 9 10 11
010101010101就對應著
第一排:0 2 4 6 8 10
第二排:1 3 5 7 9 11
問題轉換為,這樣的滿足條件的01序列有多少個.
觀察1的出現,我們考慮這一個出現能不能放在第二排,顯然,在這個1之前出現的那些0,1對應的人
要么是在這個1左邊,要么是在這個1前面.而肯定要有一個0的,在這個1前面,統計在這個1之前的0和1的個數.
也就是要求,0的個數大于1的個數.
OK,問題已經解決.
如果把0看成入棧操作,1看成出棧操作,就是說給定6個元素,合法的入棧出棧序列有多少個.
這就是catalan數,這里只是用于棧,等價地描述還有,二叉樹的枚舉,多邊形分成三角形的個數,圓括弧插入公式中的
方法數,其通項是c(2n, n)/(n+1)。
2020年河北新聞網兩學一做
時間:2023-09-18 07:0:242020年河北新聞網兩學一做
時間:2023-09-15 11:0:59兩學一做學習教育知
時間:2023-09-21 06:0:302020年開展兩學一做學習教
時間:2023-09-19 21:0:30