Lang:Java
Edit12345678910111213141516171819202122232425262728293031import java.util.Scanner;public class Main{public static final long MOD = 1000000007;public static final int CON = 64;public static int[] dx = {1, 2, 2, 1, -1, -2, -2, -1};public static int[] dy = {-2, -1, 1, 2, 2, 1, -1, -2};public static int n, r, c;public static void main(String[] args) {Scanner sn = new Scanner(System.in);n =sn.nextInt();r = sn.nextInt();c = sn.nextInt();--r;--c;Matrix coef = pre();coef = Matrix.pow(coef, n);long ans = 0;int position = r*8+c;for(int i=0;i<64;++i) {ans = (ans+coef.mat[position][i])%MOD;}System.out.println(ans);}public static Matrix pre() {Matrix ans = new Matrix(64, 64);for (int i = 0; i < 8; i ++) {for (int j = 0; j < 8; j ++) {for (int k = 0; k < 8; k ++) {int x = i + dx[k];int y = j + dy[k];if (x < 0 || y < 0 || x > 7 || y > 7) {continue;}