ps:样例输出72
by ordoki @ 2023-03-25 12:22:47
不对
by chenjunhao_ @ 2023-03-27 21:24:34
首先12行
```cpp
P[i].y=C.y+y[i];
```
by hecc @ 2023-03-30 16:04:31
其次
你需要判断马可以跳的点有没有出边界
by hecc @ 2023-03-30 16:06:46
然后
卒的终点是右下角 , 所以答案是ans[n][m];
by hecc @ 2023-03-30 16:08:23
再说了
你的循环应该是
```cpp
for (int i=0;i<=n;i++)
for (int j=0;j<=m;j++)
```
by hecc @ 2023-03-30 16:09:36
最后
送上我的代码
```cpp
#include<iostream>
#include <algorithm>
using namespace std;
long long t[102][102],dp[102][102],n,m,mx,my,ma;
int k(int x){
if(x<0){
return 100;
}
return x;
}
int main()
{
cin>>n>>m>>mx>>my;
t[mx][my]=t[k(mx-1)][k(my+2)]=1;
t[k(mx-2)][k(my+1)]=t[k(mx-1)][k(my-2)]=t[k(mx-2)][k(my-1)]=1;
t[k(mx+1)][k(my+2)]=t[k(mx+2)][k(my+1)]=1;
t[k(mx+1)][k(my-2)]=t[k(mx+2)][k(my-1)]=1;
dp[0][0]=1;
for (int i=0;i<=n;i++)
for (int j=0;j<=m;j++)
{
if(t[i][j]==0&&i<=n&&j<=m)
dp[i][j]=max(dp[i][j],dp[i-1][j]+dp[i][j-1]);
}
cout<<dp[n][m];
return 0;
}
```
by hecc @ 2023-03-30 16:10:47
~~祝我省选rp++~~
by hecc @ 2023-03-30 16:11:12