洛谷 八皇后

2022-07-03 15:00:17 字數 930 閱讀 9631

題目傳送門

好的滿分方法:傳送門

它講的非常詳細,仔細一看方法和我的差不多,不同點在於斜的兩個標記和豎的標記它分別為這個開了三個陣列,然後用來存這裡是否已經被占領,然後遞迴完下乙個再恢復,我本來也想這樣的,但我只想到用乙個二維陣列的方法,這樣是不可能回溯的,所以導致我最後乙個資料超時而他沒超時

通過這題的收穫是,大的解決不了的時候化成小的,比如說我就應該再多建幾個陣列完成回溯的,可是我沒有想到,很遺憾

自己的不ok87分方法:

ps.把沒滿分的方法放這是給自己以後看的,**存比存電腦硬碟好管理多了

思路:第一次,可以選1,2,3,4,5,6

接下來,每一次選都不能處於前面子的攻擊範圍內,這個用sign標記,然後一直遞迴就好了

評析:這個做法6~12都可以,但是當n=13時會超時,因為沒有優化過,而且我沒有想到怎麼優化

然後中間除了個錯誤,以後都不寫std::ios::sync_with_stdio(false)了,因為我根本只是照貓畫虎,不懂這東西,很容易出錯

#includeusing

namespace

std;

int ans=0

,n;int a[100],sign[100],t=0

;int f(int

new_i)

printf("\n

");}

ans++;

t++;

return0;

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

if(sign[i]!=1||new_i==1

)

memset(sign,

0,sizeof

(sign));

}return0;

}int

main()

給自己看的低分**

洛谷1219 八皇后

www.luogu.org 原網頁 題目描述 檢查乙個如下的6 x 6的跳棋棋盤,有六個棋子被放置在棋盤上,使得每行 每列有且只有乙個,每條對角線 包括兩條主對角線的所有平行線 上至多有乙個棋子。上面的布局可以用序列2 4 6 1 3 5來描述,第i個數字表示在第i行的相應位置有乙個棋子,如下 行號...

洛谷 P1219 八皇后

題目描述 檢查乙個如下的6 x 6的跳棋棋盤,有六個棋子被放置在棋盤上,使得每行 每列有且只有乙個,每條對角線 包括兩條主對角線的所有平行線 上至多有乙個棋子。上面的布局可以用序列2 4 6 1 3 5來描述,第i個數字表示在第i行的相應位置有乙個棋子,如下 行號 1 2 3 4 5 6 列號 2 ...

洛谷 P1219 八皇后

題目描述 檢查乙個如下的6 x 6的跳棋棋盤,有六個棋子被放置在棋盤上,使得每行 每列有且只有乙個,每條對角線 包括兩條主對角線的所有平行線 上至多有乙個棋子。上面的布局可以用序列2 4 6 1 3 5來描述,第i個數字表示在第i行的相應位置有乙個棋子,如下 行號 1 2 3 4 5 6 列號 2 ...