为啥加了一个剪枝优化就不行了
查看原帖
为啥加了一个剪枝优化就不行了
575802
Technablode楼主2021/10/27 22:19
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,m,num=0;
bool vis[30][30];
const int dx[]={-2,-1,1,2},dy[]={1,2,2,1};
void dfs(int x,int y){
    // if(m-y<=2*(n-x)){ 这里
        if(x==n&&y==m){
            num++;
            return ;
        }
        for(int i=0;i<4;i++){
            int kx=x+dx[i];
            int ky=y+dy[i];
            if(kx>=0&&kx<=n&&ky>=0&&ky<=m) dfs(kx,ky);
        }
    // }
}
int main(){
    cin>>n>>m;
    dfs(0,0);
    cout<<num<<endl;
    return 0;
}
2021/10/27 22:19
加载中...