这是我的代码:
#include<stdio.h>
int bx,by,cx,cy;
int dy[]={0,-2,-2,-1,-1,1,1,2,2};
int dx[]={0,-1,1,-2,2,-2,2,-1,1};
bool vis[100][100];
long long map[100][100];
int main(){
scanf("%d%d%d%d",&bx,&by,&cx,&cy);
for(int i=0;i<=8;i++){
if(cx+dx[i]>=0&&cy+dy[i]<=bx)
vis[cx+dx[i]][cy+dy[i]]=1;
}
if(vis[0][0]==1){
puts("0");
return 0;
}
map[0][0]=1;
vis[0][0]=1;
for(int i=0;i<=bx;i++){
for(int j=0;j<=by;j++){
if(!vis[i][j]){
map[i][j]=map[i][j-1]+map[i-1][j];
}
}
}
printf("%lld",map[bx][by]);
return 0;
}
我提交时发现,如果开启O2优化,这份代码0分。如果不开,这份代码可以AC此题。为什么啊