藍橋杯 演算法提高 棋盤多項式

2021-07-09 21:58:28 字數 1144 閱讀 1948

演算法提高 棋盤多項式  

時間限制:1.0s   記憶體限制:256.0mb

 棋盤多項式

問題描述

八皇后問題是在棋盤上放皇后,互相不攻擊,求方案。變換一下棋子,還可以有八車問題,八馬問題,八兵問題,八王問題,注意別念反。在這道題裡,棋子換成車,同時棋盤也得換,確切說,是進行一些改造。比如現在有一張n*n的棋盤,我們在一些格仔上摳幾個洞,這些洞自然不能放棋子了,會漏下去的。另外,乙個車本來能攻擊和它的同行同列。現在,你想想,在攻擊的過程中如果踩到乙個洞,便會自取滅亡。故,車的攻擊範圍止於洞。

此題,給你棋盤的規模n,以及挖洞情況,求放k個車的方案數(k從0到最多可放車數)

輸入格式

第一行乙個整數n表示棋盤大小

接下來n行,每行n個用空格隔開的數字0或1,0的形狀表示洞,1表示沒有洞

輸出格式

若干行,第i行表示放i個車的方案數

樣例輸入 3

1 0 1

1 1 1

1 0 1

樣例輸出 7

12 4

資料規模和約定

n<=8

/*

思路:列舉每個格仔,放或者不放 到終點幾個就累加

*/#include #include #include #include #include using namespace std;

const int n=10;

int map[n][n]; //0洞 1可以放 2放了

int re[n*n];

int len; //結果數的長度

int n;

inline bool check(int x,int y)

for(i=y+1;i=0;i--)

for(i=x+1;i=n*n)

int x=now/n;

int y=now%n;

if(map[x][y]==1)

} dfs(now+1,sum);

}int main()

memset(re,0,sizeof(re));

dfs(0,0);

for(i=1;ielse

break;

} }return 0;

}

演算法提高 棋盤多項式

問題描述 八皇后問題是在棋盤上放皇后,互相不攻擊,求方案。變換一下棋子,還可以有八車問題,八馬問題,八兵問題,八王問題,注意別念反。在這道題裡,棋子換成車,同時棋盤也得換,確切說,是進行一些改造。比如現在有一張n n的棋盤,我們在一些格仔上摳幾個洞,這些洞自然不能放棋子了,會漏下去的。另外,乙個車本...

JakeLin 藍橋杯 棋盤多項式 題解

八皇后問題是在棋盤上放皇后,互相不攻擊,求方案。變換一下棋子,還可以有八車問題,八馬問題,八兵問題,八王問題,注意別念反。在這道題裡,棋子換成車,同時棋盤也得 換,確切說,是進行一些改造。比如現在有一張n n的棋盤,我們在一些格仔上摳幾個洞,這些洞自然不能放棋子了,會漏下去的。另外,乙個車本來能攻擊...

17 棋盤多項式

17 棋盤多項式 問題描述 八皇后問題是在棋盤上放皇后,互相不攻擊,求方案。變換一下棋子,還可以有八車問題,八馬問題,八兵問題,八王問題,注意別念反。在這道題裡,棋子換成車,同時棋盤也得換,確切說,是進行一些改造。比如現在有一張n n的棋盤,我們在一些格仔上摳幾個洞,這些洞自然不能放棋子了,會漏下去...