// zj蒟蒻瑟瑟發抖。。算法
// 停課了。要好好努力!——10月8日8:29於機房spa
1. 1946 年 美國 -> 第一臺計算機排序
2. 真空電子管 -> 晶體管 -> 集成 -> 大規模集成隊列
3. 字長:8位(8 bit)這種東西 balabala。。字符串
4. 主頻:about 運算速度 e.g. pii300 -> 主頻300Hz數學
5. 工廠自動化(FA). it
CAD -> design; CAI -> 輔助教學自動化
CAM -> manufacture; EDI -> 電子數據交換(關於無現金交易這樣子)io
CAT -> test; OA -> office automation;table
6. 硬件結構:馮·諾依曼式(美籍匈牙利人) -> 運算器 / 控制器 / 存儲器 / 輸入(出)設備 => 存儲程序的概念
7. 卡特蘭數:$C_n=\frac{C^n_{2n}}{n+1}$
用途:1. 長度爲 n 的進棧序列 1,2,3,...,n,求出棧種數
2. 在 (n+2) 邊凸多邊形內連若干不相交的對角線來劃分三角形,求問幾種?
3. n 個節點排 BST
4. n 對括號內有幾種是匹配的?(in 所有狀況)
8. 二叉樹:$n_0=n_2+1$ 對於k叉樹,聯立邊關係和點關係,也就是$n=n_0+n_1+...+n_k$(點關係)和 $n-1=k*n_k+...+n_1$,因而可推出。
9. 約瑟夫環問題:當n爲2的冪次時,最後留下的都是1;當n不是的時候,兩個2的冪次之間,留下的人的編號爲3,5,7,9,......
k階約瑟夫問題:O(n) DP :$f(1)=0$; $f(n)=(f(n-1)+k)mod\;n$ 出現0是由於mod的緣故,+1就能夠了
n的值 | 隊列 | 活下的人 |
1 | 1 | 1 |
2 | 1 2 | 1 |
3 | 1 2 3 | 3 |
4 | 1 2 3 4 | 1 |
5 | 1 2 3 4 5 | 3 |
6 | 1 2 3 4 5 6 | 5 |
7 | 1 2 3 4 5 6 7 | 7 |
8 | 1 2 3 4 5 6 7 8 | 1 |
10. 08年提升問題求解T2(21本書選四本,每兩本編號不相鄰):可有$1\le x_1<x_2-1<x_3-2<x_4-3\le18$,即將不連續的$x_1$,$x_2$,$x_3$,$x_4$映射到[1,18]的連續區間上,也就至關於$C_{18}^4$,故答案爲3060.
11. 99年提升:n條折成角的直線,劃分平面數目爲$2n^2-n+1$。推論:直線分割平面:$\frac{n(n+1)}{2}+1$;封閉曲線(如通常位置上的圓)分割平面:$n^2-n+2$;平面分割空間:$\frac{n^3+5n}{6}+1$。
12. 07年普及:n個數劃分r個非空集合,有$S(n,1)=1$; $S(n,n)=1$; $S(n,r)=S(n-1,r-1)+r\times S(n-1,r)$。$S(n-1,r-1)$不用乘係數,由於在向下推的時候已經包含了固定各個數的狀況。據說也是第二類斯特林數。
13. 06年提升:三角形路徑數目。一種解釋是:路徑惟一,從倒數第二層到終點有且僅有n-1種方法,再向上同理,爲n-2種。根據乘法原理,n層三角形的方案數目是$(n-1)!$
14. x個a,y個b,z個c排字符串,包含子串'abc'的種數:捆一個abc,算全排列;捆兩個,減去;捆三個,加上。e.g. 3個a,5個b,3個c,種數:$\frac{9!}{2!4!2!}-\frac{7!}{2!3!}+\frac{5!}{2!3!}$
15. 圓桌問題之相鄰不重複。有n我的坐在一張圓桌上吃飯,要求天天每個人兩邊相鄰的人不一樣,問這樣最多能夠安排多少天?如3我的時只能1天,4我的時也只能是1天,而5我的能夠安排2天。那麼抽象爲n個節點的無向圖,每個節點都去和其餘全部節點連邊,總邊數爲$\frac{n(n-1)}{2}$,每一天事後都刪去n條邊,因此獲得的結論就是$\lfloor \frac{n-1}{2} \rfloor$
16. 強制類型轉換:(類型)(表達式)。事實上,除非表達式是單個變量,不然都要加括號。e.g. (int)x+y 的含義是將x轉換爲int之後和y相加,與(int)(x+y)的含義是不一樣的。
17. 由數字1,1,2,4,8,8所組成的不一樣的四位數的個數是102。算法:不能直接$C^4_6\;A^4_4$而後幹嗎幹嗎。。正解應當分類討論
一:①一、一、二、4;②一、一、二、8;③一、一、四、8;④一、二、八、8;⑤一、四、八、8;⑥二、四、八、8這6組,他們的方案數都是$\frac{A_4^4}{2!}$,總的就是$6\times 12$,72種;
二:僅有一、二、四、8組成固然就是4個全排列;
三:一、一、八、8去排;
答案就是$72+24+6=102$。
18. 14提升選擇:同時查找2n 個數中的最大值和最小值,最少比較次數爲( )。正解:兩兩比較,大的和max去比,小的和min去比。第一組比較一次獲得max和min;後面$2\times (n-1)$個數,兩兩比較須要$n-1$次,每個還會去和max/min比較一次,也就是$2\times (n-1)$次,綜上,即爲$3\times (n-1)+1$次。
19. 應用快速排序的分治思想,能夠實現一個求第k大數的程序。假定不考慮極端的最壞狀況,理論上能夠實現的最低的算法時間複雜度是。。。O(n)!
呃,事實上,在作的時候,分治的另外一個區間是能夠拋掉的。也就是說,雖然進行了二分,$T(n)=n+\frac{n}{2}+\frac{n}{4}+...$ 所以漸進複雜度爲O(n)。
20. 世紀難題:約瑟夫好人壞人version,還沒有知道數學解法,沒法手算qwq;
21. 對於一個無向圖,他不是聯通圖意味着一定存在一個節點的度爲0;對於任何一個圖,不存在奇環是其爲二分圖的充要條件;
22. 任何一個算法的空間複雜度都不大於其時間複雜度;
23. while(1)rp++;