牛客网的https://ac.nowcoder.com/acm/problem/16407
奈何网上大多是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;
}
}
}
}
给个采纳吧