nyoj 488 素數環(深搜)

2021-06-27 05:39:51 字數 1164 閱讀 6717

時間限制:

1000 ms  |  記憶體限制:

65535 kb

難度:2 描述

有乙個整數n,把從1到n的數字無重複的排列成環,且使每相鄰兩個數(包括首尾)的和都為素數,稱為素數環。

為了簡便起見,我們規定每個素數環都從1開始。例如,下圖就是6的乙個素數環。

輸入

有多組測試資料,每組輸入乙個n(0輸出

每組第一行輸出對應的case序號,從1開始。

如果存在滿足題意敘述的素數環,從小到大輸出。

否則輸出no answer。

樣例輸入

683

0

樣例輸出

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

case 3:

no answer

**

hdu改編

上傳者

acm_丁國強

考察的是深搜;

深搜模板:

//深搜模板:(自己總結的,有不對的地方,還請各位路過的大牛,不吝指教!) 

int n;//首先申請乙個全域性變數

int visit[10010];//標記 元素

int a[10010];//存放元素

void dfs(int cur)

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

**如下:

#include#includeint n;

int visit[110];

int ring[110]=;

int prime(int x)//判斷是否是素數

return 1;

}void dfs(int k)//深搜

{ int i;

if(k==n-1)//迴圈跳出的條件

{ if(prime(1+ring[k]))//滿足和為素數

{ printf("1");

for(i=1;i

素數環 (深搜)

描述 有乙個整數n,把從1到n的數字無重複的排列成環,且使每相鄰兩個數 包括首尾 的和都為素數,稱為素數環。為了簡便起見,我們規定每個素數環都從1開始。例如,下圖就是6的乙個素數環。輸入 有多組測試資料,每組輸入乙個n 0輸出 每組第一行輸出對應的case序號,從1開始。如果存在滿足題意敘述的素數環...

素數環(深搜 C 版)

素數環 總時間限制 1000ms 記憶體限制 65536kb 描述 輸入正整數n,把整數1,2,3,n組成乙個環,使得相鄰兩個整數之和均為素數。小強同學看過這個題,笑了 呵呵,打表!mr.wu為了阻止小強打表,決定這樣 把全部的解按字典序排序後,從1開始編號,依次輸出指定編號的k組解。最後一行輸出總...

南陽oj 題目 488 素數環

時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 有乙個整數n,把從1到n的數字無重複的排列成環,且使每相鄰兩個數 包括首尾 的和都為素數,稱為素數環。為了簡便起見,我們規定每個素數環都從1開始。例如,下圖就是6的乙個素數環。輸入 有多組測試資料,每組輸入乙個n 0 inclu...