//1314:【例3.6】过河卒(Noip2002)
#include<iostream>
using namespace std;
int bx,by,cx,cy,i,j;//bx,by为B点坐标,cx,cy为C点(马)坐标
int qipan[21][21];//qipan[i][j]表示棋盘中第i行第j列里的数字。可以经过的点为0,不可以经过的点为1(马所在点及马控制的点)
long long lujing[21][21];//lujing[i][j]表示到达棋盘中第i行第j列的路径和。
int fangxiang[8][2]={
{2,1},{1,2},{-1,2},{-2,1},{-2,-1},{-1,-2},{1,-2},{2,-1}};//马周边的8个点的坐标变化方向
//fangxiang[i][0]为横坐标变化值,fangxiang[i][1]为纵坐标变化值
int main()
{
cin>>bx>>by>>cx>>cy;
//将马所在点及马控制点在棋盘中标记出来
lujing[cx][cy]=0;//马所在点不能走,所以到马所在点路径和为0
qipan[cx][cy]=1;
for(i=0;i<=7;i++) //将棋盘中不能经过的点(马控制的点)标记为1
{
if((cx+fangxiang[i][0])>=0&&(cx+fangxiang[i][0])<=20&&(cy+fangxiang[i][1])>=0&&(cy+fangxiang[i][1])<=20)
{
//lujing[cx+fangxiang[i][0]][cy+fangxiang[i][1]]=0;
qipan[cx+fangxiang[i][0]][cy+fa
1314:【例3.6】过河卒(Noip2002)
于 2022-03-31 21:08:23 首次发布
本文详细解析了蓝桥杯竞赛中的一道C++编程题目【例3.6】过河卒,通过实例深入探讨如何运用C++解决此类问题。
摘要由CSDN通过智能技术生成