求助(样例都没过30分)

P1605 迷宫

你为什么不是x2和z2分别小于n和m?却是小于4.
by 薛裕龙 @ 2018-07-19 11:37:10


x2<=n&&z2<=m 另外还要开个数组book标记一下走过的就不能走啦 a数组标记的是障碍物 你把它和book混用了
by LengChu @ 2018-07-19 11:37:14


40分再次求助qwq ``` #include<cstdio> int a[10086][10086]; int n,m,p,q,t,sx,sy,fx,fy,x2,z2,i,sum; int xi[4]={1,0,0,-1},zi[4]={0,1,-1,0}; int ti1[9999],ti2[9999]; void ac(int x1,int z1) { for(i=0;i<=3;i++) { if(x1+xi[i]>=1&&z1+zi[i]>=1&&x1+xi[i]<=n&&z1+zi[i]<=m) { if(a[x1+xi[i]][z1+zi[i]]==0) { x2=x1+xi[i]; z2=z1+zi[i]; a[x2][z2]=1; if(x2==fx&&z2==fy) { sum++; return; } else ac(x2,z2); a[x2][z2]=0; } } } } int main() { scanf("%d %d %d %d %d %d %d",&n,&m,&t,&sx,&sy,&fx,&fy); for(i=1;i<=t;i++) { scanf("%d %d",&ti1[i],&ti2[i]); a[ti1[i]][ti2[i]]=1; } ac(sx,sy); printf("%d",sum); } ```
by 爱晚亭哦 @ 2018-07-19 11:55:10


|