33
Top-down & Bottom-up 郭至軒(KuoE0[email protected] KuoE0.ch

[ACM-ICPC] Top-down & Bottom-up

Embed Size (px)

Citation preview

Page 3: [ACM-ICPC] Top-down & Bottom-up

Top-down將大問題化為小問題,再回溯求解。

Page 4: [ACM-ICPC] Top-down & Bottom-up

Top-down將大問題化為小問題,再回溯求解。

Page 5: [ACM-ICPC] Top-down & Bottom-up

Top-down將大問題化為小問題,再回溯求解。

Page 6: [ACM-ICPC] Top-down & Bottom-up

Bottom-up由已知解決小問題,逐步推移至大問題。

Page 7: [ACM-ICPC] Top-down & Bottom-up

Bottom-up由已知解決小問題,逐步推移至大問題。

Page 8: [ACM-ICPC] Top-down & Bottom-up

Recursion

易有太極,是生兩儀。兩儀生四象,四象生八卦。《易傳》

利用同樣的方法不斷的細分問題或逼近答案。

Page 9: [ACM-ICPC] Top-down & Bottom-up

Fibonacci Sequencefib(5)

Page 10: [ACM-ICPC] Top-down & Bottom-up

Fibonacci Sequencefib(5)

fib(4) fib(3)

Page 11: [ACM-ICPC] Top-down & Bottom-up

Fibonacci Sequencefib(5)

fib(4)

fib(3) fib(2)

fib(3)

Page 12: [ACM-ICPC] Top-down & Bottom-up

Fibonacci Sequencefib(5)

fib(4)

fib(3)

fib(2)

fib(2)

fib(1)

fib(3)

Page 13: [ACM-ICPC] Top-down & Bottom-up

Fibonacci Sequencefib(5)

fib(4)

fib(3)

fib(2)

fib(2)

fib(1) fib(0)

fib(1)

fib(3)

Page 14: [ACM-ICPC] Top-down & Bottom-up

Fibonacci Sequencefib(5)

fib(4)

fib(3)

fib(2)

fib(2)

fib(1) fib(0)

fib(1)

fib(3)

1 0

1

Page 15: [ACM-ICPC] Top-down & Bottom-up

Fibonacci Sequencefib(5)

fib(4)

fib(3)

fib(2)

fib(2)

fib(1) fib(0)

fib(1)

fib(3)

1 0

1 1

2

Page 16: [ACM-ICPC] Top-down & Bottom-up

Fibonacci Sequencefib(5)

fib(4)

fib(3)

fib(2) fib(1)

fib(2)

fib(1) fib(0)

fib(0)fib(1)

fib(3)

1 0

1 1

2

Page 17: [ACM-ICPC] Top-down & Bottom-up

Fibonacci Sequencefib(5)

fib(4)

fib(3)

fib(2) fib(1)

fib(2)

fib(1) fib(0)

fib(0)fib(1)

fib(3)

1 0

1 1

2

1 0

1

3

Page 18: [ACM-ICPC] Top-down & Bottom-up

Fibonacci Sequencefib(5)

fib(4)

fib(3)

fib(2) fib(1)

fib(2)

fib(1) fib(0)

fib(0)fib(1)

fib(2)

fib(3)

fib(1)

1 0

1 1

2

1 0

1

3

Page 19: [ACM-ICPC] Top-down & Bottom-up

Fibonacci Sequencefib(5)

fib(4)

fib(3)

fib(2) fib(1)

fib(2)

fib(1) fib(0)

fib(0)fib(1) fib(1)

fib(2)

fib(3)

fib(0)

fib(1)

1 0

1 1

2

1 0

1

3

Page 20: [ACM-ICPC] Top-down & Bottom-up

Fibonacci Sequencefib(5)

fib(4)

fib(3)

fib(2) fib(1)

fib(2)

fib(1) fib(0)

fib(0)fib(1) fib(1)

fib(2)

fib(3)

fib(0)

fib(1)

1 0

1 1

2

1 0

1

3

1 0

1

Page 21: [ACM-ICPC] Top-down & Bottom-up

Fibonacci Sequencefib(5)

fib(4)

fib(3)

fib(2) fib(1)

fib(2)

fib(1) fib(0)

fib(0)fib(1) fib(1)

fib(2)

fib(3)

fib(0)

fib(1)

1 0

1 1

2

1 0

1

3

1 0

1 1

2

5

Page 22: [ACM-ICPC] Top-down & Bottom-up

int fib( int x ) {if ( x <= 0 )return 0;

if ( x == 1 )return 1;

return fib( x - 1 ) + fib( x - 2 );}

int main() {int ret = fib( 10 );return 0;

}

Page 23: [ACM-ICPC] Top-down & Bottom-up

Iteration

道生一,一生二,二生三,三生萬物。《老子》

不斷的利用已知,持續的求出結果以逼近答案。

Page 24: [ACM-ICPC] Top-down & Bottom-up

Fibonacci Sequence

0

1

Page 25: [ACM-ICPC] Top-down & Bottom-up

Fibonacci Sequence

0

1

1

Page 26: [ACM-ICPC] Top-down & Bottom-up

Fibonacci Sequence

0

1

1

2

Page 27: [ACM-ICPC] Top-down & Bottom-up

Fibonacci Sequence

0

1

1

2

3

Page 28: [ACM-ICPC] Top-down & Bottom-up

Fibonacci Sequence

0

1

1

2

3

5

Page 29: [ACM-ICPC] Top-down & Bottom-up

int main() {int f0 = 0, f1 = 1, f2;

for ( int i = 0; i < 10; ++i ) {f2 = f0 + f1;f0 = f1, f1 = f2;

}

return 0;}

Page 30: [ACM-ICPC] Top-down & Bottom-up

遞迴只應天上有,凡人應當用迴圈。

Page 31: [ACM-ICPC] Top-down & Bottom-up

POJ 1664 - 放苹果

Practice Now

Page 33: [ACM-ICPC] Top-down & Bottom-up

Thank You for Your Listening.