1 1 教學計畫與遞迴

2022-07-01 03:57:12 字數 3270 閱讀 4558

一般 acm 或者筆試題的時間限制是\(1\)秒或\(2\)秒。

在這種情況下,c++ **中的操作次數控制在\(10^7 \sim 10^8\)為最佳。

下面給出在不同資料範圍下,**的時間複雜度和演算法該如何選擇:

1.\(n \leqslant 30\):指數級別、dfs+剪枝、狀態壓縮dp;

2.\(n \leqslant 100 \rightarrow o(n^3)\):floyd、dp、高斯消元;

3.\(n \leqslant 1000 \rightarrow o(n^2),\; o(n^2logn)\):dp、二分、樸素版dijkstra、樸素版prim、bellman-ford;

4.\(n \leqslant 10000 \rightarrow o(n\sqrt n)\):塊狀鍊錶、分塊、莫隊;

5.\(n \leqslant 100000 \rightarrow o(nlogn)\):各種sort、線段樹、樹狀陣列、set/map、heap、拓撲排序、dijkstra+heap、prim+heap、spfa、求凸包、求半平面交、二分、cdq分治、整體二分;

6.\(n \leqslant 1000000 \rightarrow o(n),\;\)以及常數較小的\(o(nlogn)\)演算法:單調佇列、hash、雙指標掃瞄、並查集、kmp、ac自動機;常數較小的\(o(nlogn)\)的做法:sort、樹狀陣列、heap、dijkstra、spfa;

7.\(n \leqslant 10000000 \rightarrow o(n)\):雙指標掃瞄,kmp、ac自動機、線性篩素數;

8.\(n \leqslant 10^9 \rightarrow o(\sqrt n)\):判斷質數;

9.\(n \leqslant 10^ \rightarrow o(logn)\):最大公約數,快速冪;

10.\(n \leqslant 10^ \rightarrow o((logn)^2)\):高精度加減乘除;

11.\(n \leqslant 10^ \rightarrow o(logk \times loglogk)\),\(k\)表示位數:高精度加減、fft/ntt;

注:這裡的\(log\)指的是以\(2\)為底的對數;

int f(int n)
設\(f=\\)

\(n=1 \quad f_1=1\);\(n=2 \quad f_2=2\);

$f_n=f_+f_ \quad n \geqslant 3 $

int f(int n)
遞迴\(\rightarrow\)遞迴搜尋樹

從 \(1\sim n\) 這 \(n\) 個整數中隨機選取任意多個,輸出所有可能的選擇方案。

輸入乙個整數 \(n\)。

每行輸出一種方案。

同一行內的數必須公升序排列,相鄰兩個數用恰好 \(1\) 個空格隔開。

對於沒有選任何數的方案,輸出空行。

本題有自定義校驗器(spj),各行(不同方案)之間的順序任意。

\(1\leqslant n \leqslant 15\)

3

3

22 3

11 3

1 21 2 3

例:\(n=3\)時的遞迴搜尋樹

int st[n];//狀態,記錄每個位置當前的狀態:0表示還沒考慮,1表示選它,2表示不選它

void dfs(int u)

st[u]=2;

dfs(u+1); //第乙個分支:不選

st[u]=0; //恢復現場

st[u]=1;

dfs(u+1); //第二個分支:選

st[u]=0; //恢復現場

}int main()

/*執行空間: 856 kb

*/

#include#include#include#include#includeusing namespace std;

const int n=16;

int n;

int st[n];

vector> ways;

//ways代表方案

void dfs(int u)

st[u]=2;

dfs(u+1);

st[u]=0;

st[u]=1;

dfs(u+1);

st[u]=0;

}int main()

//依次列舉每個分支,即當前位置可以填哪些數

for(int i=1;i<=n;++i)

if(!used[i])

}int main()

/*執行空間: 7000 kb

*/

總的時間複雜度為\(o[n(1+n+n(n-1)+n(n-1)(n-2)+ \cdots + n!)]\)

相當於\(p_n^0+p_n^1+p_n^2+\cdots +p_n^n \geqslant n!\)

原式相當於:

\[n(n!+\frac+\frac +\frac+\cdots \frac)

\]對其進行放縮:

\[原始\leqslant n(n!+\frac+\frac +\frac+\frac\cdots \frac) \leqslant n \times n!(1+1+\frac+\frac+\frac+\cdots)\leqslant 3n!

\]故整個時間複雜度小於等於\(o(n \times n!)\)

Lesson Plan 教學計畫 翻譯

計畫是老師的乙個非常重要的技能。這篇文章討論了一些常用課規劃問題 怎樣進入英語課程?每一種教學及課程都是不一樣的。而內容就是要看老師在課堂上要達到什麼樣的目標。然後,作一些推論也是非常的重要。那些感興趣及加入的學生,對於他們所說的東西都是非常的感興趣,並且希望能夠做得更好,所以他們就學得非常的快。要...

Lesson Plan 教學計畫 翻譯

計畫是老師的乙個非常重要的技能。這篇文章討論了一些常用課規劃問題 怎樣進入英語課程?每一種教學及課程都是不一樣的。而內容就是要看老師在課堂上要達到什麼樣的目標。然後,作一些推論也是非常的重要。那些感興趣及加入的學生,對於他們所說的東西都是非常的感興趣,並且希望能夠做得更好,所以他們就學得非常的快。要...

教學計畫 物理必修二

周次 教學內容 第一周5.1曲線運動 5.2質點在平面內的運動 第二週5.3 拋體運動的規律 5.4 平拋運動規律 第三週習題課 5.5 圓周運動 5.6 向心加速度 第四周5.7 向心力 5.8 生活中的圓周運動 第五周習題課 複習評估 單元測試 第六周6.1 行星的運動 6.2 太陽與行星間的引...