hdu1016 DFS 素數判斷

2021-08-07 20:23:03 字數 723 閱讀 8751

總是不好好審題。總結一下自己不看題容易犯的錯:

1.漏掉某個重要條件。如此題的必須為1開頭,之前還有一道迷宮題也是。

2.列印格式問題

3.可能是多個樣例輸入  !!! 在這點上栽了很多次了。

4.不同答案的英文格式問題。

此題是最簡單的dfs+素數判斷,素數直接照搬之前學習的乙個單個素數判斷方法,非常強悍~

//hdu1016 單個素數判斷+搜尋

#include#include#includeusing namespace std;

int n;

int p = ;

int d[22];

int usd[22];

//單個素數判斷,直接搬過來的

int prime(int k)

if(k == 2||k==3||k==5)

if(k%2==0||k%3==0||k%5==0)

int bound = (int)sqrt(k);

//本質還是遍歷可能的因數。只是該因數增長按照一定的規律

for(int i = 7;i<=bound;)

i+= p[j];

} if(k%i==0)

} return 1;

}void dfs(int level){

if(level == n){

if(prime(d[n-1]+d[0])){

for(int i = 0;i

hdu1016 素數環剪枝dfs

題意 n 20範圍,搜乙個全排列,滿足素數環,相鄰兩個數字和為素數,最後一位和第一位之和也是素數。剪枝 每一位都先先判斷再搜尋。include include include include include include include include include include includ...

HDU1016 簡單遞迴 DFS

題意 乙個環,相鄰相加是素數。思路 直接深搜就好了。output limit exceed 了好幾發。因為那個while裡面的scanf前面的 後來搜了output limit exceed的常見錯誤,還有輸入輸出,所以主要看下輸入輸出那邊有沒有寫錯吧,還有寫的時候也要及其避免出現錯誤。includ...

dfs組合 判斷素數

遞迴入門 組合 判斷素數 時間限制 1 sec 記憶體限制 128 mb 提交 205 解決 77 提交 狀態 討論版 命題人 外部匯入 題目描述 已知 n 個整數b1,b2,bn 以及乙個整數 k k n 從 n 個整數中任選 k 個整數相加,可分別得到一系列的和。例如當 n 4,k 3,4 個整...