[NOIP2002]过河卒

[NOIP2002] 普及组]过河卒

小结

定义两个long型数组,代表棋盘和存放🐎的控制点。

long [][]ma=new long [30][30];
long [][]map1=new long [30][30];
map1[x][y]=1;
map1[x+1][y+2]=1;
if(y-2>=0) map1[x+1][y-2]=1;
map1[x+2][y+1]=1;
if(y-1>=0) map1[x+2][y-1]=1;
if(x-2>=0) map1[x-2][y+1]=1;
if(x-2>=0&&y-1>=0)map1[x-2][y-1]=1;
if(x-1>=0) map1[x-1][y+2]=1;
if(x-1>=0&&y-2>=0) map1[x-1][y-2]=1;

 

设置期盼初始值为1,

ma[1][0]=1;

 

在双重循环中,让当前点位的值=正上方点位+左上方点位,

ma[i][j]=ma[i-1][j]+ma[i][j-1];

 

并作判断如果当前点位为🐎的控制点,则赋值为0.

if(map1[i-1][j-1]==1) ma[i][j]=0;

 

输出棋盘终点值。

System.out.println(ma[n+1][m+1]);   
 

 

posted @ 2023-03-20 23:44  落"  阅读(112)  评论(0)    收藏  举报