zoukankan      html  css  js  c++  java
  • CF1292A-NEKO's Maze Game

    题目:https://vjudge.net/problem/CodeForces-1292A

    题意:共两行,从(1,1)到(2,n)每过一个时刻会有一个位置的状态变化,从能到达这个位置变成不能到达,或从不能到达变成能到达,问在每个时刻中是否能从起点到终点。

    分析:对于某一行的一个障碍,要形成阻碍,必须在另一行的该位置或者相邻位置存在障碍。也就是说,假设a[1][y]存在障碍,那么a[2][y-1]或者a[2][y]或者a[2][y+1]存在障碍才能形成阻碍。故我们可以两两组成一组并计数,每存在一组就加一,每消失一组就减一,如果计数为0就可以通过。

    #include <stdio.h>
    int a[3][100100];
    int n,q,x,y;
    int main(void){
        scanf("%d %d",&n,&q);
        int flag=0;
        while(q--){
            scanf("%d %d",&x,&y);
            if(!a[x][y]){
                a[x][y]=1;
                    if(a[3-x][y+1])flag++;
                if(a[3-x][y])flag++;
                if(a[3-x][y-1])flag++;
            }
            else{
                if(a[3-x][y+1])flag--;
                if(a[3-x][y])flag--;
                if(a[3-x][y-1])flag--;
                a[x][y]=0;
            }
            if(flag)printf("No
    ");
            else printf("Yes
    ");
        }
    }
  • 相关阅读:
    某题2
    某题1
    某题
    DAY 7
    DAY 4
    数据结构(六)图
    【转载】大数据面试知识图谱
    数据结构(四)二叉树
    Scala(一)基础
    Java虚拟机(一)
  • 原文地址:https://www.cnblogs.com/yanying7/p/12358237.html
Copyright © 2011-2022 走看看