高產的博主來了,當然這個部落格刷題記錄挺少的,一般都是講座(???黑人問號)。
今天更新的是素數環,素數環的意思就是:輸入正整數n,用整數1,2,3,……,n 的某種排列組成乙個環,使任意相鄰的兩數和均為素數。你的任務是輸出有多少種排列方案。
其實吧,這道題的解題思路和深搜差不多。。。就是「一條路走到黑(???)」就是選完乙個方案後,就退回乙個元素然後繼續選。
a陣列是模擬環的陣列,vis是visit,記錄乙個點走沒走過。
記得vis一定要置回0,要不然就炸了。
ac**:
#include
using namespace std;
int a[21],vis[21],n,t;
bool is_prime(int n)
void js(int xx)}}
int main()
{int kase=0;
scanf("%d",&n);
a[0]=1;
vis[1]=1;
js(1);
cout《在這裡附上智障同學的素數環加強版:
加油,博主要繼續努力啦!~\(≧▽≦)/~下次見
DFS搜尋題素數環
素數環 輸入整數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,然後向...
素數環 搜尋與回溯
題目描述description 從1到20這20個數擺成乙個環,要求相鄰的兩個數的和是乙個素數。輸入輸出格式input output 輸入格式 無輸入輸出格式 乙個整數 第幾號素數環 一列數字 表示這個素數環 輸入輸出樣例sample input output 樣例測試點 1 輸入樣例 無輸出樣例 ...
hdu素數環(搜尋入門題)
這是一道dfs入門題,題意簡單,注意兩個地方,乙個是n為奇數時有兩個奇數相鄰,此時肯定無素數環,第二個是對於不同的dfs定義有不同的實現方法,個人建議入門應該嘗試各種定義的dfs進行實現,看了下其他人寫的 稍加修改了下 include include using namespace std int ...