Codeforces Round #614 (Div. 1) A. NEKO's Maze Game (思维,模拟)

时间:2023-03-09 20:44:32
Codeforces Round #614 (Div. 1) A. NEKO's Maze Game  (思维,模拟)

Codeforces Round #614 (Div. 1) A. NEKO's Maze Game  (思维,模拟)

  • 题意:有一个\(2\)X\(n\)的矩阵,你想从\((1,1)\)走到\((2,n)\),每次可以向上下左右四个方向走,但在某些时间段某个点会被堵住,如果已经被堵住,那么即恢复正常,每次对某个点操作,操作后询问是否能走到终点.

  • 题解:只有当第一层和第二层被堵的点连通时才会到不了终点,比如\((x,y)\)和\({(x+1,y),(x+1,y-1),(x+1,y+1)}\).所以我们记录当前给的点的另外一层所对应的三个点的贡献,然后判断一下直接输出答案就好了,思路简单,具体看代码吧.

  • 代码:

    int n,q;
    int x,y;
    int p[2][N];
    int cnt; int main() {
    //ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    scanf("%d%d",&n,&q); for(int i=1;i<=q;++i){
    scanf("%d %d",&x,&y);
    x--;
    p[x][y]^=1;
    if(p[x^1][y-1]) cnt+=p[x][y]?1:-1;
    if(p[x^1][y]) cnt+=p[x][y]?1:-1;
    if(p[x^1][y+1]) cnt+=p[x][y]?1:-1;
    if(cnt>0) puts("No");
    else puts("Yes");
    } return 0;
    }