[acm-icpc] backtracking

23
Backtracking 陳鵬宇 (float) <[email protected]>

Upload: -

Post on 12-May-2015

389 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: [ACM-ICPC] Backtracking

Backtracking

陳鵬宇 (float)<[email protected]>

Page 2: [ACM-ICPC] Backtracking

Rights to CopyAttribution-ShareAlike 3.0

You are free:

– to Share — to copy, distribute and transmit the work

– to Remix — to adapt the work

– to make commercial use of the work

● Under the following conditions:

– Attribution — You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).

– Share Alike — If you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one.

– License text: http://creativecommons.org/licenses/by-sa/3.0/legalcode

Page 3: [ACM-ICPC] Backtracking

Backtracking● 概念

– 枚舉所有可能性

● 排列、組合

Page 4: [ACM-ICPC] Backtracking

Example● 1, 2, 3 的所有排列

Page 5: [ACM-ICPC] Backtracking

Example● 第一格目前可以選 : 1, 2, 3

Page 6: [ACM-ICPC] Backtracking

Example● 第二格目前可以選 : 2, 3

1

1

Page 7: [ACM-ICPC] Backtracking

Example● 第三格目前可以選 : 3

1

1 2

1 2

Page 8: [ACM-ICPC] Backtracking

Example● 找到第一個組合 :1-2-3

1

1 2

1 2 3

Page 9: [ACM-ICPC] Backtracking

Example● 往回走,第三格可以選 : 3

1

1 2

1 2 3

Page 10: [ACM-ICPC] Backtracking

Example● 3 已經選過,再往回,第二格可以選 :2, 3

1

1 2

1 2 3

Page 11: [ACM-ICPC] Backtracking

Example● 3 已經選過,再往回,第二格可以選 :2, 3

1

1 2

1 2 3

Page 12: [ACM-ICPC] Backtracking

Example● 2 已經選過,選 3

1

1 2

1 2 3

1 3

Page 13: [ACM-ICPC] Backtracking

Example● 後略 ...

1

1 2

1 2 3

1 3

1 3 2

Page 14: [ACM-ICPC] Backtracking

Example

1

1 2

1 2 3

1 3

1 3 2

Page 15: [ACM-ICPC] Backtracking

Example● 1, 2, 3 的所有組合

1 2 3

Page 16: [ACM-ICPC] Backtracking

Example

1 2 3

1 2 3

1 2 3

Page 17: [ACM-ICPC] Backtracking

Example

1 2 3

1 2 3

1 2 3 1 2 3

Page 18: [ACM-ICPC] Backtracking

Example

1 2 3

1 2 3

1 2 3 1 2 3

1 2 3

1 2 3 1 2 3

Page 19: [ACM-ICPC] Backtracking

Practice

UVa - 441

Page 20: [ACM-ICPC] Backtracking

8 Queen Problem● 問題:在 8x8 的西洋棋棋盤上擺放八隻皇后,

讓他們恰好無法互相攻擊對方。● 組合

● Uva - 750

Page 21: [ACM-ICPC] Backtracking

Sudoku● 數獨:行、列、方格內不可重復● 排列

● UVa - 989

Page 22: [ACM-ICPC] Backtracking

剪支● 在完成遞迴條件前檢查是否可能為答案

– Ex. 組合遞增數列

Page 23: [ACM-ICPC] Backtracking

102/3/27 23

Thank You for Your Listening.