骑士游历
来源:互联网 发布:如何编写python程序 编辑:程序博客网 时间:2024/04/18 16:45
#1504 : 骑士游历
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
描述
在8x8的国际象棋棋盘上给定一只骑士(俗称“马”)棋子的位置(R, C),小Hi想知道从(R, C)开始移动N步一共有多少种不同的走法。
输入
第一行包含三个整数,N,R和C。
对于40%的数据, 1 <= N <= 1000000
对于100%的数据, 1 <= N <= 1000000000 1 <= R, C <= 8
输出
从(R, C)开始走N步有多少种不同的走法。由于答案可能非常大,你只需要输出答案模1000000007的余数。
样例输入
2 1 1
样例输出
时间限制:10000ms
单点时限:1000ms
内存限制:256MB
描述
在8x8的国际象棋棋盘上给定一只骑士(俗称“马”)棋子的位置(R, C),小Hi想知道从(R, C)开始移动N步一共有多少种不同的走法。
输入
第一行包含三个整数,N,R和C。
对于40%的数据, 1 <= N <= 1000000
对于100%的数据, 1 <= N <= 1000000000 1 <= R, C <= 8
输出
从(R, C)开始走N步有多少种不同的走法。由于答案可能非常大,你只需要输出答案模1000000007的余数。
样例输入
2 1 1
样例输出
12
一个通俗的想法:f[k][i][j],第k步可以到达(i,j)的步法总数。
f[k+1][i][j]是在第k步的基础上走1步到达(i,j)的步法总数。
import java.util.Scanner;public class Main {static long[][][] data=new long[2][12][12];static int[] dx=new int[]{-2,-2,-1,-1,1,1,2,2};static int[] dy=new int[]{-1,1,-2,2,-2,2,-1,1};static int pre=0,cur=0;static int mod=1000000007;public static void main(String[] args) {Scanner sc=new Scanner(System.in);while(sc.hasNext()){int n=sc.nextInt();int r=sc.nextInt();int c=sc.nextInt();data[0][r][c]=1;pre=0;cur=1;for (int step = 1; step <= n; step++) {for (int i = 1; i <= 8; i++) {for (int j = 1; j <= 8; j++) {data[cur][i][j]=0;}}for (int i = 1; i <= 8; i++) {for (int j = 1; j <= 8; j++) {//八个方向for (int f = 0; f < 8; f++) {int x=i+dx[f];int y=j+dy[f];if(x>=1 && x<=8 && y>=1 && y<=8)data[cur][x][y]=(data[cur][x][y]+data[pre][i][j])%mod;}}}pre=pre^1;cur=cur^1;}long ans=0;for (int i = 1; i <= 8; i++) {for (int j = 1; j < 8; j++) {ans=(ans+data[pre][i][j])%mod;}}System.out.println(ans);}}}
0 0
- 骑士游历
- 骑士游历
- 骑士游历
- 骑士游历
- 骑士游历问题
- ZJNU 1006 骑士游历
- 骑士游历问题
- UVA 439 骑士游历
- poj 2488 骑士游历
- wikioi p1219 骑士游历
- wikioi 1219 骑士游历
- POJ2488 骑士游历(DFS)
- Wikioi 骑士游历
- wikioi骑士游历c
- 维基 1219 骑士游历
- codevs1219 骑士游历
- 【codevs】p1219 骑士游历
- 骑士游历算法
- Splay 树
- 学习编程一年多的体会
- HTML常用标签
- windows关闭进程 批处理端口占用
- ACM另一种阶乘问题
- 骑士游历
- 博客搬家
- poj 3481 double Queue(Splay树 模板解读)
- 数值转换成大写金额运算
- 第一道非二叉树题
- 关于TCP、HTTP、Socket的自我理解
- 第七届蓝桥杯大学生C组java决赛题目 密文搜索
- git 推送多个远程仓库
- 续写