HDOJ 1016 Prime Ring Problem
Problem Description
A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ..., n into each circle separately, and the sum of numbers in two adjacent circles should be a prime.
Note: the number of first circle should always be 1.

Note: the number of first circle should always be 1.

Input
n (0 < n < 20).
Output
The output format is shown as sample below. Each row represents a series of circle numbers in the ring beginning from 1 clockwisely and anticlockwisely. The order of numbers must satisfy the above requirements. Print solutions in lexicographical order.
You are to write a program that completes above process.
Print a blank line after each case.
You are to write a program that completes above process.
Print a blank line after each case.
Sample Input
6 8
Sample Output
Case 1: 1 4 3 2 5 6 1 6 5 2 3 4 Case 2: 1 2 3 8 5 6 7 4 1 2 5 8 3 4 7 6 1 4 7 6 5 8 3 2 1 6 7 4 3 8 5 2
比較經(jīng)典的搜索題,由于n<20,可以先預(yù)處理出前40個自然數(shù)中的素數(shù),然后深搜某個位置的未被訪問過的數(shù)字和它相鄰位置的數(shù)字之和是否為素數(shù),搜索退出的條件為最后一個位置的數(shù)字circle[n]+1是否為素數(shù)。一次搜索完成后,要回溯,否則只會輸出一組解。




















































posted on 2009-05-24 13:37 極限定律 閱讀(1171) 評論(1) 編輯 收藏 引用 所屬分類: ACM/ICPC