UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#211421#3803. 激光sean1381Compile Error//C++115.1kb2024-08-11 11:44:272024-08-11 13:12:43

answer

#include<bits/stdc++.h>
using namespace std;
int n,m,k,x,y,u,v;
struct pir{
    int a,b;
};
char c[1005][1005];
int ans[1005][1005];
pir ch[1005][1005];
bool f[66][66];
void dfs1(int i,int j,int a,int b,int res){
    if(c[a][b]=='#'){
        return;
    }
    if(ans[a][b]){ans[i][j]+=ans[a][b];return;}
    if(c[a][b]=='X'){
        dfs()
    }
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>c[i][j];
            if(c[i][j]=='#') k++;
        }
    }
    for(int i=1;2*i<=k;i++){
        cin>>x>>y>>u>>v;
        ch[x][y].a=u;
        ch[x][y].b=v;
        ch[u][v].a=x;
        ch[u][v].b=y;
    }
    /*if(n<=60&&m<=60){
        int cnt=0;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                if(c[i][j]=='.'){
                    memset(f,0,sizeof(f))
                    int a=i,b=j;
                    while(true){
                    if(c[a][b]=='#'){
                        return;
                    }
                    if(ans[a][b]){ans[i][j]+=ans[a][b];return;}
                    if(c[a][b]=='X'){
                        ans[i][j]+=(f[a][b]==0);

                    }}
                    dfs1(i,j,i,j,0);
                }
                else cout<<-1<<' ';
            }
            cout<<endl;
        }
        memset(ans,0,sizeof(ans));
        for(int i=n;i>=1;i--){
            for(int j=1;j<=m;j++){
                if(c[i][j]=='.'){
                    for(int l=i;l<=n;l++){
                        if(c[l][j]=='#') break;
                        if(ans[l][j]){ ans[i][j]+=ans[l][j];break;}
                        ans[i][j]++;
                    }
                    
                }else ans[i][j]=-1;
            }
        }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                cout<<ans[i][j]<<' ';
            }
            cout<<endl;
        }
        memset(ans,0,sizeof(ans));
        for(int i=1;i<=n;i++){
            for(int j=m;j>=1;j--){
                if(c[i][j]=='.'){
                    for(int l=j;l<=n;l++){
                        if(c[i][l]=='#') break;
                        if(ans[i][l]){ ans[i][j]+=ans[i][l];break;}
                        ans[i][j]++;
                    }
                    
                }else ans[i][j]=-1;
            }
        }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                cout<<ans[i][j]<<' ';
            }
            cout<<endl;
        }
        memset(ans,0,sizeof(ans));
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                if(c[i][j]=='.'){
                    for(int l=j;l>=1;l--){
                        if(c[i][l]=='#') break;
                        if(ans[i][l]){ ans[i][j]+=ans[i][l];break;}
                        ans[i][j]++;
                    }
                    
                }else ans[i][j]=-1;
            }
        }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                cout<<ans[i][j]<<' ';
            }
            cout<<endl;
        }
        return 0;
    }*/
    int cnt=0;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(c[i][j]=='.'){
                for(int l=i;l>=1;l--){
                    if(c[l][j]=='#') break;
                    if(ans[l][j]){ ans[i][j]+=ans[l][j];break;}
                    ans[i][j]++;
                }
                cout<<ans[i][j]<<' ';
            }
            else cout<<-1<<' ';
        }
        cout<<endl;
    }
    memset(ans,0,sizeof(ans));
    for(int i=n;i>=1;i--){
        for(int j=1;j<=m;j++){
            if(c[i][j]=='.'){
                for(int l=i;l<=n;l++){
                    if(c[l][j]=='#') break;
                    if(ans[l][j]){ ans[i][j]+=ans[l][j];break;}
                    ans[i][j]++;
                }
                
            }else ans[i][j]=-1;
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cout<<ans[i][j]<<' ';
        }
        cout<<endl;
    }
    memset(ans,0,sizeof(ans));
    for(int i=1;i<=n;i++){
        for(int j=m;j>=1;j--){
            if(c[i][j]=='.'){
                for(int l=j;l<=n;l++){
                    if(c[i][l]=='#') break;
                    if(ans[i][l]){ ans[i][j]+=ans[i][l];break;}
                    ans[i][j]++;
                }
                
            }else ans[i][j]=-1;
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cout<<ans[i][j]<<' ';
        }
        cout<<endl;
    }
    memset(ans,0,sizeof(ans));
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(c[i][j]=='.'){
                for(int l=j;l>=1;l--){
                    if(c[i][l]=='#') break;
                    if(ans[i][l]){ ans[i][j]+=ans[i][l];break;}
                    ans[i][j]++;
                }
                
            }else ans[i][j]=-1;
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cout<<ans[i][j]<<' ';
        }
        cout<<endl;
    }
}

详细

answer.code: In function 'void dfs1(int, int, int, int, int)':
answer.code:17:13: error: 'dfs' was not declared in this scope
         dfs()\x0d
             ^
answer.code:18:5: error: expected ';' before '}' token
     }\x0d
     ^