10分!!!其他都RE!!!
查看原帖
10分!!!其他都RE!!!
772899
Enmin楼主2024/8/5 20:34
#include<bits/stdc++.h>

using namespace std;
using ll = long long;
using db = double;
using str = string;
const int N = 1e3;
//升:priority_queue <int,vector<int>,greater<int>> qe;
//降:priority_queque <int,vector<int>,less<int>> qe;

int g[5] = {0,0,1,0,-1};
int h[5] = {0,1,0,-1,0};
int n,m,x[N],y[N],ans=0;
char a[N][N],dd;
void admin(int k,int r) {
    int sum=1,tail=1;
    x[1]=k;
    y[1]=r;
    while(sum<=tail) {
        for(int i=1;i<=4;i++) {
            int t1 = x[sum] + g[i];
            int t2 = y[sum] + h[i];
            if(a[t1][t2]!='0'&&t1>0&&t1<=n&&t2>0&&t2<=m) {
                a[t1][t2]='0';
                printf("x:%d y:%d\n",t1,t2);
                tail++;
                x[tail] = t1;
                y[tail] = t2;
            }
        }
        sum++;
    }
    return ;
}
int main() {
    scanf("%d%d%c",&n,&m,&dd);
    for(int i=1;i<=n;i++) {
        char s;
        for(int j=1;j<=m;j++) {
            scanf("%c",&a[i][j]);
        }
        scanf("%c",&s);
    }
    for(int i=1;i<=n;i++) {
        for(int j=1;j<=m;j++) {
            if(a[i][j]!='0') {
                a[i][j]='0';
                admin(i,j);
                ans++;
            }
        }
    }
    printf("%d\n",ans);
    return 0;
}
2024/8/5 20:34
加载中...