caioj1040 遞迴10(素數圈)

2021-08-07 12:28:51 字數 804 閱讀 4443

【閒話】

可能是最近第乙個完全自己寫自己檢查自己改正確的**qwq雖然簡單但是成就感up啊

1.輸出條件除了k>n還要檢查第乙個和最後乙個的和是否為素數 它本來是個圈只是這樣輸出而已

2.需要另外乙個b陣列來判斷i這個數本身是否可用 一開始腦抽寫的!a[k]但人家沒賦值的時候本身就是0呀

3.由題意要寫a[1]=1 若dfs內i從2開始迴圈則不用宣告b[1]=1 從1則必須寫(emmm還是寫了比較好

4.改完以上所有錯誤 這是最後檢查出來的 ...判斷素數因子從2開始...感覺寫幾遍錯幾遍qwq 不過sqrt要+1終於是記得了qwq

【題意】 

有n個正整數,分別是1~n,把這n個數排成乙個圈,使得相鄰兩個整數之和均為素數。

輸出時,從整數1開始逆時針排列。

同乙個圈應恰好輸出一次。  

【輸入格式】 

一行乙個整數n(1<=n<=16).

【輸出格式】 

按字典序輸出每種方案。

每行乙個方案,格式參考樣例。相鄰兩數有乙個空格,最後乙個沒有空格。 

【樣例輸入】 

6【樣例輸出】 

1 4 3 2 5 6

1 6 5 2 3 4

【**】

#include#includeusing namespace std;

int n,a[20],b[20];

int isp(int x)

void dfs(int k){

if(k>n&&isp(a[n]+a[1]))

{ for(int i=1;i<=n;i++)

i

caioj 1040 搜尋初步

因為按字典序排序 且頭尾相接 可理解成是乙個圈 所以第一位一定是1 prim 判斷素數的函式裡可以加上記憶化 因為函式裡i i x寫成了n debug了很久 邊寫邊輸出除錯比較好 可以定義debug函式 霧 以及 什麼時候要寫一下線性篩呀 includeusing namespace std tem...

caioj1039 遞迴9(騎士巡遊)

閒話 昨天講過 然後感覺比較好寫 自己寫了之後檢查呀改呀覺得沒毛病就是沒有輸出 寫了老師的程式才發現自己考慮掉了情況 然鵝自以為考慮完全了 不過可以修改自己的程式的感覺比以前只能記住老師程式的感覺棒太多哈哈哈 主要問題是我以為if a x2 y2 1 已經把越界的都否定完了然鵝這麼寫並不包含x2 1...

caioj1032 遞迴2(組合)

閒話 弄懂全排列之後這題就很簡單了 emmm因為後面輸出的只會比前面的大所以不用不停穿衣服 服blabla 字典序 1 2 3與1 3 2是同乙個組合 主要要弄懂i r k n即r k n i 然後老師說的剪枝比 上1到n迴圈會快很多 題意 組合就是從n個元素中抽出r個元素 不分順序且r n 我們可...