濟南學習 Day 5 T3 am

2021-07-28 20:35:27 字數 1179 閱讀 7846

【題目描述】

眾所不知,rly現在不會玩西洋棋。但是,作為乙個oier,rly當然做過八皇后問題.在這裡再囉嗦幾句,皇后可以攻擊到同行同列同對角線,在

n*n的棋盤中,擺放n個皇后使它們互相不能攻擊到,求不同的解的數量,這就是經典的n皇后問題。現在問題推廣n皇后問題,這個問題對你而言實

在是小菜一碟。但是因為上次rly把棋盤弄破了,又拿不出新的,所以rly打算難一點點,問題就是在破的棋盤上的n皇后問題。他想知道......(你們懂的..)

妻子都是相同的

【輸入說明】

一行,乙個整數n。

接下來n行,每行n個整數,要麼為0,表示沒壞,要麼為1,表示壞了。

【輸出說明】

一行,輸出不同的接的數量。

【樣例輸入】 4

1 0 1 1

1 1 1 0

0 1 1 1

1 1 0 1

【樣例輸出】 1

【資料範圍】

對於40%的資料,n<=13。

對於100%的資料,n<=16。

對於30%的資料棋盤沒有破,你可以認為rly又去買了乙個新的。

1

/*位運算優化n皇后

*/2 #include3 #include4

#define n 20

5using

namespace

std;

6int

hang[n],n,ans;

7void dfs(int t,int a,int b,int c)//

a,b,c都是二進位制數,表示哪一列或對角線是否放過皇后,1為放過 813

int s=((1

<1)&(~(hang[t]|a|b|c));

14/*

15s是乙個二進位制數,表示當前可以往哪一列放皇后

16(hang[t]|a|b|c)表示哪些列從列和對角線的角度來說都放過

17加上~(取反),表示哪些列可以放皇后

18*/

19while

(s)2025}

26int

main()

2735 dfs(1,0,0,0

);36 printf("%d"

,ans);

37return0;

38 }

思路:位運算優化後的n皇后問題

濟南學習 Day 3 T3 am

選數字 select time limit 3000ms memory limit 64mb 題目描述 lyk 找到了乙個 n m 的矩陣,這個矩陣上都填有一些數字,對於第 i 行第 j 列的位置上 的數為 ai,j。由於它 ak 了 noip2016 的初賽,最近顯得非常無聊,便想到了乙個方法自娛...

濟南學習 Day 3 T2 am

看程式寫結果 program time limit 1000ms memory limit 64mb 題目描述 lyk 最近在準備 noip2017 的初賽,它最不擅長的就是看程式寫結果了,因此它拼命地 在練習。這次它拿到這樣的乙個程式 pascal readln n for i 1 to n do...

濟南學習 Day 3 T1 am

np np time limit 1000ms memory limit 64mb 題目描述 lyk 喜歡研究一些比較困難的問題,比如 np 問題。這次它又遇到乙個棘手的 np 問題。問題是這個樣子的 有兩個數 n 和 p,求 n 的階乘 對 p 取模後的結果。lyk 覺得所有 np 問題都是沒有多...