素數環:
輸入整數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 #include3using
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 輸入樣例 無輸出樣例 ...