全WA可还行

P1002 [NOIP2002 普及组] 过河卒

开int数组时g[i][j]可能是一个很奇怪的数,不一定是0。先弄一个for循环把所有的g[i][j]变成0
by code77playbridge @ 2020-08-11 10:33:19


```c #include <bits/stdc++.h> using namespace std; int b1,b2,m1,m2; long long f[40][40]; bool g[40][40]; int main(){ cin >> b1 >> b2 >> m1 >> m2; memset(g,0,sizeof(g)); memset(f,0,sizeof(g)); g[m1][m2]=1; if(m1-1>=0&&m1-2>=0) g[m1-1][m2-2]=1; if(m1+1<=b1&&m2-2>=0) g[m1+1][m2-2]=1; if(m1-2>=0&&m2-1>=0) g[m1-2][m2-1]=1; if(m1+2<=b1&&m2-1>=0) g[m1+2][m2-1]=1; if(m1-1>=0&&m2+2<=b2) g[m1-1][m2+2]=1; if(m1-2>=0&&m2+1<=b2) g[m1-2][m2+1]=1; if(m1+1<=b1&&m2+2<=b2) g[m1+1][m2+2]=1; if(m1+2<=b1&&m2+1<=b2) g[m1+2][m2+1]=1; for(int i=0;i<=b1;i++){ for(int j=0;j<=b2;j++){ if(!g[i][j]){ if(i==0&j==0) f[0][0]=1; else if(i>0&&j==0)f[i][0]=f[i-1][0]; else if(i==0&&j>0) f[0][j]=f[0][j-1]; else f[i][j]=f[i-1][j]+f[i][j-1]; } } } printf("%d",f[b1][b2]); return 0; } ``` 三AC代码,这又错哪了
by 2020yhq @ 2020-08-11 10:48:53


``` if(i==0&&j==0) f[0][0]=1; ```
by WTR2007 @ 2020-08-12 18:59:47


~~全局变量好像会自动赋0~~
by zty_luogu @ 2020-08-15 23:24:05


|