演算法提高 棋盤多項式
時間限制: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的棋盤,我們在一些格仔上摳幾個洞,這些洞自然不能放棋子了,會漏下去...