POJ 1321 棋盤問題

2022-05-21 00:58:37 字數 655 閱讀 5468

考試週後的第一發 寫搜尋題找手感

題意:給你乙個n*n的棋盤及其放棋子的位置 給定旗子數目 問在滿足條件下 能夠有多少種不同放棋子的方法  寫了一發dfs 差點寫炸 不斷搜尋判斷是否符合題意即可;

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

typedef struct node node;

char a[100][100];

node b[100];

int first[1005];

int k;

int sum=0;

bool vis[100];

void dfs(int e,int t,int l)

if(t==k)

for(int i=e+1; i<=l; i++)

w=first[w];

}if(flag==0)

} }}int main()

}} b[0].x=0;

b[0].y=0;

sum=0;

first[0]=-1;

dfs(0,-1,p);

cout<} 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...