问题标题: 酷町堂:3017

0
0
已解决
包涵宇
包涵宇
中级天翼
中级天翼

60分:

#include<iostream>
#include<string>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstdlib>
using namespace std;
int t,n,m,mx,map[21][21],s;
int vis[21][21];
void dfs(int x,int y,int c){
    if(y>t){
        x++;
        y=1;
    }
    if(x>t){
        if(c==n)
            s++;
        return ;
    }
    if(!vis[x][y]){
        vis[x][y]++,vis[x-1][y-1]++,vis[x-1][y]++,vis[x-1][y+1]++,vis[x][y-1]++,vis[x][y+1]++,vis[x+1][y-1]++,vis[x+1][y]++,vis[x+1][y+1]++;
        dfs(x,y+1,c+1);
        vis[x][y]--,vis[x-1][y-1]--,vis[x-1][y]--,vis[x-1][y+1]--,vis[x][y-1]--,vis[x][y+1]--,vis[x+1][y-1]--,vis[x+1][y]--,vis[x+1][y+1]--;
    }
    dfs(x,y+1,c);
}
int main(){
    cin>>t>>n;
    dfs(1,1,0);
    cout<<s;
    return 0;
}

如何剪枝?


0
已采纳
李瑞曦
李瑞曦
高级天翼
高级天翼

剪枝是什么???

0
我要回答