[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]);
浙公网安备 33010602011771号