文章

1

粉丝

180

获赞

2

访问

2.5k

头像
DFS+回溯
P1265 北京大学/北京航空航天大学机试题
发布于2023年3月25日 13:31
阅读数 2.5k

 思路比较清晰,看代码就能明白应该。好久没有写过搜索了,这道题做完手感来了,也发个题解。

dfs所有情况遍历完并且计算每一种情况的数值,注意记录并回溯每一个阶段的各个参数。

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<vector>
#include<cstdio>
#include<mm_malloc.h>

using namespace std;

int** matri;
long long result = 0;
vector<long long> res;

void arrange(int a, int b, int** mat){
    for(int i = 0;i < 8;i++){
        mat[i][b] = 1;
        mat[a][i] = 1;
    }
    int j = b;
    for(int i = a;i < 8 && j < 8;i++,j++){
        mat[i][j] = 1;
    }
    j = b;
    for(int i = a;i < 8 && j >= 0;i++,j--){
        mat[i][j] = 1;
    }
    j = b;
    for(int i = a;i >= 0 && j < 8;i--,j++){
        mat[i][j] = 1;
    }
    j = b;
    for(int i = a;i >= 0 && j >= 0;i--,j--){
        mat[i][j] = 1;
    }
}

void dfs(int a, int b){
    int** matri_s = (int **)malloc(8 * sizeof(int *))...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发