```
for(int i=3;i<=n;i++)
for(int j=3;j<=m;j++)
if(x[i][j]!=0)
x[i][j]==x[i-1][j]+x[i][j-1];
```
为什么要从3开始?
by Lyrith_with_xQ @ 2024-03-02 11:17:28
还有`x[i][j]==x[i-1][j]+x[i][j-1];`要改成`x[i][j]=x[i-1][j]+x[i][j-1];`,赋值是一个等号
by Lyrith_with_xQ @ 2024-03-02 11:18:21
《==》
by Fractured_Angel @ 2024-03-02 12:14:48
@[Lyrith_with_xQ](/user/1044870) 谢谢!你帮我把分数提到了60分(没有满分),麻烦做进一步改进
错在3、4测试点
```
#include<iostream>
using namespace std;
int x[26][26];
int main(){
//开四个点位,避免数组越界
int n,m,mn,mm;
long long shuchu;
cin>>n>>m>>mn>>mm;
mn+=2;
mm+=2;
n+=2;
m+=2;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++)
x[i][j]=1;
}
x[mn][mm]=0;
x[mn+1][mm+2]=0;
x[mn+1][mm-2]=0;
x[mn+2][mm-1]=0;
x[mn+2][mm+1]=0;
x[mn-1][mm+2]=0;
x[mn-1][mm-2]=0;
x[mn-2][mm-1]=0;
x[mn-2][mm+1]=0;
for(int i=3;i<=n;i++)
for(int j=3;j<=m;j++)
if(x[i][j]!=0)
x[i][j]=x[i-1][j]+x[i][j-1];
cout<<x[n][m];
}
```
by 13860121259AaBb @ 2024-03-02 19:49:17
@[13860121259AaBb](/user/1264600)
```c
for(int i=3;i<=n;i++)
for(int j=3;j<=m;j++)
if(x[i][j]!=0)
x[i][j]=x[i-1][j]+x[i][j-1];
```
为什么要从3开始?
by Lyrith_with_xQ @ 2024-03-02 20:23:21
还有你把dp数组全标上1干什么
by Lyrith_with_xQ @ 2024-03-02 20:24:26
不能走的点应该额外开个数组标记啊
by Lyrith_with_xQ @ 2024-03-02 20:25:08
@[Lyrith_with_xQ](/user/1044870) 我怕数组越界,所以故意把数组开大了
by 13860121259AaBb @ 2024-03-05 13:16:00
@[Lyrith_with_xQ](/user/1044870) 不用啊
by 13860121259AaBb @ 2024-03-05 13:16:42
测试点3的数据是:输入20 20 4 0输出56477364570
这你输出不对,少了1位数啊
by qusia_MC @ 2024-03-05 20:17:48