谁知道这个编译错误怎么处理
查看原帖
谁知道这个编译错误怎么处理
672360
Ch35楼主2022/8/30 21:06

莫名其妙的编译错误,本地也是这样,而且显示不了错误行:

#include<bits/stdc++.h>
using namespace std;
int T,n,m,q;
const int N=20001;
static char a[N][N],b[N][N];
static int l[N][N],col,lv;
static bool c[N][N];
static short co[N][N];
int dfs(int x,int y,int road,int way){
    if(road==1)return 1;
    int ans=1;
    if(x-1>0&&b[x-1][y]!=0&&c[x-1][y]==0&&(road==3||(road==2&&way==1))){
        if(co[x-1][y]==0){
            c[x-1][y]=1;
            ans+=dfs(x-1,y,road,1);
        }
        else{
            if(co[x-1][y]!=col&&l[x-1][y]<=lv){
                ans+=1;
            }
        }
    }
    if(y-1>0&&a[x][y-1]!=0&&c[x][y-1]==0&&(road==3||(road==2&&way==2))){
        if(co[x][y-1]==0){
            c[x][y-1]=1;
            ans+=dfs(x,y-1,road,2);
        }
        else{
            if(co[x][y-1]!=col&&l[x][y-1]<=lv){
                ans+=1;
            }
        }
    }
    if(y+1<=m&&a[x][y]!=0&&c[x][y+1]==0&&(road==3||(road==2&&way==3))){
        if(co[x][y+1]==0){
            c[x][y+1]=1;
            ans+=dfs(x,y+1,road,3);
        }
        else{
            if(co[x][y+1]!=col&&l[x][y+1]<=lv){
                ans+=1;
            }
        }
    }
    if(x+1<=n&&b[x][y]!=0&&c[x+1][y]==0&&(road==3||(road==2&&way==4))){
        if(co[x+1][y]==0){
            c[x+1][y]=1;
            ans+=dfs(x+1,y,road,4);
        }
        else{
            if(co[x+1][y]!=col&&l[x+1][y]<=lv){
                ans+=1;
            }
        }
    }
    return ans;
}
int main(){
    scanf("%d",&T);
    while(T--){
        scanf("%d%d%d",&n,&m,&q);
        for(int i=1;i<=n;i++){
            for(int j=1;j<m;j++){
                a[i][j]=getchar();
            }
        }
        for(int i=1;i<n;i++){
            for(int j=1;j<=m;j++){
                b[i][j]=getchar();
            }
        }
        for(int i=1;i<=q;i++){
            int x,y;
            scanf("%d%d%d%d",&col,&lv,&x,&y);
            int cnt=0;
            if(x-1>0&&b[x-1][y]!='0')c[x-1][y]=1,cnt+=dfs(x-1,y,b[x-1][y],1),c[x-1][y]=0;
            if(y-1>0&&a[x][y-1]!='0')c[x][y-1]=1,cnt+=dfs(x,y-1,a[x][y-1],2),c[x][y-1]=0;
            if(y+1<=m&&a[x][y]!='0')c[x][y+1]=1,cnt+=dfs(x,y+1,a[x][y],3),c[x][y+1]=0;
            if(x+1<=n&&b[x][y]!='0')c[x+1][y]=1,cnt+=dfs(x+1,y,b[x][y],4),c[x+1][y]=0;
            cout<<cnt<<endl;
            c[x][y]=col+1;
            l[x][y]=lv;
        }
    }
	
	return 0;
}
2022/8/30 21:06
加载中...