DFS搜尋題素數環

2022-02-21 05:52:08 字數 770 閱讀 2780

素數環:

輸入整數1,2,3,4,5,···,n組成乙個環,使得相鄰兩個整數之和均為素數。

輸出時從整數1開始逆時針排列。同乙個環應恰好輸出一次。n<=16.

sample:

input:

output:

1 4 3 2 5 6 

1 6 5 2 3 4

使用dfs搜尋解釋:素數環的第乙個數為1,則選定第乙個數為1,然後向下遍歷所有資料,能夠和前面乙個資料組合相加成為素數的數就被陣列記錄下來。

知道判斷到最後乙個數字,然後檢查它和第乙個數相加是否為素數,若是就輸出陣列中記錄的答案,不是就從頭開始。

**如下:

1 #include2 #include3

using

namespace

std;

4const

int n=100;5

intvis[n],ans[n];

6intn;7

bool

flag;

8bool is_prime(int x)//

判斷兩個資料相加是否為素數914

void dfs(int

cur)

1525 cout<27return;28

}29for(int i=2;i<=n;i++)

3038}39

return;40

}41intmain()

4250

return0;

51 }

hdu素數環(搜尋入門題)

這是一道dfs入門題,題意簡單,注意兩個地方,乙個是n為奇數時有兩個奇數相鄰,此時肯定無素數環,第二個是對於不同的dfs定義有不同的實現方法,個人建議入門應該嘗試各種定義的dfs進行實現,看了下其他人寫的 稍加修改了下 include include using namespace std int ...

素數環 搜尋

高產的博主來了,當然這個部落格刷題記錄挺少的,一般都是講座 黑人問號 今天更新的是素數環,素數環的意思就是 輸入正整數n,用整數1,2,3,n 的某種排列組成乙個環,使任意相鄰的兩數和均為素數。你的任務是輸出有多少種排列方案。其實吧,這道題的解題思路和深搜差不多。就是 一條路走到黑 就是選完乙個方案...

素數環 搜尋與回溯

題目描述description 從1到20這20個數擺成乙個環,要求相鄰的兩個數的和是乙個素數。輸入輸出格式input output 輸入格式 無輸入輸出格式 乙個整數 第幾號素數環 一列數字 表示這個素數環 輸入輸出樣例sample input output 樣例測試點 1 輸入樣例 無輸出樣例 ...