QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#632836#7733. Cool, It’s Yesterday Four Times Morejr_zlw#WA 1ms3844kbC++171.5kb2024-10-12 14:02:142024-10-12 14:02:17

Judging History

你现在查看的是最新测评结果

  • [2024-10-12 14:02:17]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3844kb
  • [2024-10-12 14:02:14]
  • 提交

answer

#include<bits/stdc++.h>
#define rep(a,b,c) for(int c(a);c<=(b);++c)
using namespace std;
inline int read() {
    int res=0;char ch=getchar();while(ch<'0'||ch>'9')ch=getchar();
    while(ch<='9'&&ch>='0')res=res*10+(ch^48),ch=getchar();return res;
}
inline bool rd() {
    char ch=getchar();while(ch!='.'&&ch!='O')ch=getchar();
    return ch=='.';
}
const int N=1010,dx[4]={0,0,1,-1},dy[4]={1,-1,0,0};
int n,m,I,J;bool a[N][N],vis[N][N];
typedef pair<int,int> pii;
map<pii,int> t;
inline bool check(int x,int y) {
    if(x<1||y<1||x>n||y>m)return false;
    return a[x][y];
}
inline void dfs0(int x,int y) {
    if(!check(x,y)||vis[x][y])return;
    ++t[{x-I,y-J}];vis[x][y]=true;
    rep(0,3,i) {
        int tx=x+dx[i],ty=y+dy[i];
        dfs0(tx,ty);
    }
}
bool flag;
inline void dfs1(int x,int y) {
    if(!check(x,y)||vis[x][y])return;
    if(t[{x-I,y-J}]==1) {
        flag=true;
        return;
    }
    vis[x][y]=true;
    rep(0,3,i) {
        int tx=x+dx[i],ty=y+dy[i];
        dfs1(tx,ty);if(flag)break;
    }
}
inline void Solve() {
    n=read();m=read();
    rep(1,n,i)rep(1,m,j)a[i][j]=rd();
    t.clear();
    rep(1,n,i)rep(1,m,j)if(a[i][j]) {
        rep(1,n,ii)rep(1,m,jj)vis[ii][jj]=false;
        I=i;J=j;dfs0(i,j);
    }
    int ans=0;
    rep(1,n,i)rep(1,m,j)if(a[i][j]) {
        rep(1,n,ii)rep(1,m,jj)vis[ii][jj]=false;
        I=i;J=j;flag=false;dfs1(i,j);if(flag)++ans;
    }
    printf("%d\n",ans);
}
int main() {
    int T=read();
    while(T--)Solve();
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3792kb

input:

4
2 5
.OO..
O..O.
1 3
O.O
1 3
.O.
2 3
OOO
OOO

output:

3
1
0
0

result:

ok 4 lines

Test #2:

score: -100
Wrong Answer
time: 1ms
memory: 3844kb

input:

200
2 4
OOO.
OO..
2 3
OOO
.O.
3 3
O.O
OOO
OO.
4 1
.
.
O
O
1 2
.O
1 1
.
2 5
.OO..
.O.O.
2 1
O
O
1 1
O
1 3
.OO
5 1
O
O
.
O
.
5 2
O.
..
O.
.O
..
5 3
...
...
.OO
..O
OOO
3 5
..O.O
.O.O.
.OO.O
5 2
.O
OO
O.
O.
..
2 1
O
O
3 5
.O.OO
O...O
..OO.
1 5
.....
5 1
O
.
O
.
.
5 3
OOO
OO.
.OO
OO.
O.O
2 1
O
.
5 2
O.
...

output:

3
0
0
2
1
1
3
0
0
1
0
3
6
4
4
0
5
2
2
0
1
5
4
4
2
0
0
4
3
3
1
2
1
0
3
2
2
2
6
2
0
4
2
2
2
0
4
5
6
3
3
2
3
4
2
1
0
3
3
4
4
2
2
0
7
6
2
7
5
3
2
5
2
1
2
1
2
0
0
2
5
1
4
4
4
1
5
2
2
2
4
5
2
1
0
1
5
3
4
4
0
2
2
1
0
0
2
2
1
4
2
6
3
0
3
5
2
4
1
2
3
2
0
2
8
2
2
4
0
2
4
4
2
1
2
2
0
5
0
9
4
3
2
5
0
6
2
3
1
1
...

result:

wrong answer 12th lines differ - expected: '7', found: '3'