poj 1321(棋盤問題)

2021-08-29 01:39:15 字數 508 閱讀 3733

解題方法:dfs解題,可以按行開始放棋子,每次放完做乙個標記,表示當前列已經放了棋子,接下來該列不能再放棋子了。至於如何使用dfs就看**中的注釋吧。

#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;

#define inf 0x3f3f3f3f

char mp[10][10];

int ans;

int n,k;

int use[10];//第i行是否已被安放棋子

void dfs(int a,int b)

if(a>n)

return ;

for(int i=0;i>mp[i][j];

}} dfs(0,k);

printf("%d\n",ans);

} return 0;

}

POJ 1321 棋盤問題

time limit 1000ms memory limit 10000k total submissions 7007 accepted 3390 description 在乙個給定形狀的棋盤 形狀可能是不規則的 上面擺放棋子,棋子沒有區別。要求擺放時任意的兩個棋子不能放在棋盤中的同一行或者同一列...

poj 1321 棋盤問題

棋盤問題 time limit 1000ms memory limit 10000k total submissions 15365 accepted 7600 description 在乙個給定形狀的棋盤 形狀可能是不規則的 上面擺放棋子,棋子沒有區別。要求擺放時任意的兩個棋子不能放在棋盤中的同一...

POJ 1321 棋盤問題

找到第乙個有 的行開始回溯就可以了 include include using namespace std const int maxn 9 char board maxn maxn bool c maxn int ans,n,k void backtracking int curi,int cnt...