File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1- 学习笔记
1+ #### 分治法递归模板
2+
3+ ```
4+ private static int divide_conquer(Problem problem, ) {
5+
6+ if (problem == NULL) {
7+ int res = process_last_result();
8+ return res;
9+ }
10+ subProblems = split_problem(problem)
11+
12+ res0 = divide_conquer(subProblems[0])
13+ res1 = divide_conquer(subProblems[1])
14+
15+ result = process_result(res0, res1);
16+
17+ return result;
18+ }
19+ ```
20+
21+ #### dp
22+
23+ ```
24+ public void recur(int level, int param) {
25+ // terminator
26+ if (level > MAX_LEVEL) {
27+ // process result
28+ return;
29+ }
30+ // process current logic
31+ process(level, param);
32+ // drill down
33+ recur( level: level + 1, newParam);
34+ // restore current status
35+ }
36+ ```
37+
38+ #### 分治
39+
40+ ```
41+ private static int divide_conquer(Problem problem, ) {
42+ if (problem == NULL) {
43+ int res = process_last_result();
44+ return res;
45+ }
46+ subProblems = split_problem(problem);
47+ res0 = divide_conquer(subProblems[0]);
48+ res1 = divide_conquer(subProblems[1]);
49+ // res...
50+ result = process_result(res0, res1, ...);
51+ return result;
52+ }
53+ ```
You can’t perform that action at this time.
0 commit comments