555蒟蒻求助o(>﹏<)o

P1002 [NOIP2002 普及组] 过河卒

其实不需要find()函数,可以实现标记好哪些点可以走,哪些点不能走,记到一个二维数组里. ```cpp #include<iostream> using namespace std; int dx[8]={1,1,2,2,-1,-1,-2,-2};//八个方向行与原点的变化 int dy[8]={2,-2,2,-1,2,-2,1,-1};//八个方向列与原点的变化 bool f[30][30];//标记是否可走,可走为0,不可走为1 int n,m,cx,cy; void biaoji() { f[cx][cy]=1;//原点不可走 for(int i=0;i<8;i++)//枚举八个方向 { int tx=cx+x[i][0];//新点的行 int ty=cy+x[i][1];//新点的列 if(tx>=0&&tx<=n&&ty>=0&&ty<=m)//若行列都没有超出范围 f[tx][ty]=1;//标记不可走 } } int main() { cin>>n>>m>>cx>>cy; biaoji(); //后面就直接把f[i][j]的值拿来用即可 return 0; } ```
by wanggk @ 2021-07-09 11:26:22


|