题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
在 2 行 5 列的格子中填入 1 到 10 的数字。 要求: 相邻的格子中的数,右边的大于左边的,下边的大于上边的。
如下图所示的 2 种,就是合格的填法。
请你计算一共有多少种可能的方案。
运行限制
public class Main {static int ans=0;static int[] a=new int[10];static int[] biaoji=new int[11];public static void main(String[] args) {dfs(0);System.out.println(ans);}public static void dfs(int n){if(n==10){if(check(a)){ans++;return;}else{return;}}for(int i=1;i<=10;i++){if(a[n]==0&&biaoji[i]==0){biaoji[i]=1;a[n]=i;dfs(n+1);a[n]=0;biaoji[i]=0;}}}public static boolean check(int[] b){if(a[1]<a[0]||a[2]<a[1]||a[3]<a[2]||a[4]<a[3]||a[6]<a[5]||a[7]<a[6]||a[8]<a[7]||a[9]<a[8]){return false;}if(a[5]<a[0]||a[6]<a[1]||a[7]<a[2]||a[8]<a[3]||a[9]<a[4]){return false;}return true;}
}
-
- 最大运行时间:1s
- 最大运行内存: 128M