一道递归算法,求java解题方法

问题遇到的现象和发生背景

牛客网的https://ac.nowcoder.com/acm/problem/16407

问题相关代码,请勿粘贴截图

img

运行结果及报错内容

奈何网上大多是c++的解题!
现在正在为蓝桥杯努力!

我的解答思路和尝试过的方法
我想要达到的结果

import java.util.Scanner;
import java.util.Arrays;
public class Main{
    static int count;
    static int m,n,k;
    static int seat[][] = new int[100][100];;
    public static void main(String [] args){
        int t;
        Scanner s = new Scanner(System.in);
        t = s.nextInt();
        while(t>0){
            count = 0;
            m = s.nextInt();
            n = s.nextInt();
            k = s.nextInt();
            for (int b[] : seat)
                Arrays.fill(b, 0);
            dfs(0,0);
            System.out.println(count%420047);
            t--;
        }
    }
    
    public static void dfs(int begin,int num){
        if(num==k) {
            count++;
            return;
        }
        for(int i=begin+1;i<=n*m;i++) {
            int col = (i-1)%m+1;
            int row = (i-col)/m+1;
            if(seat[row-1][col]==0 && seat[row][col-1]==0) {
                seat[row][col] = 1;
                dfs(i,num+1);
                seat[row][col] = 0;
            }
        }
 
    }

}

给个采纳