• CF1292A NEKO's Maze Game(思维)


    原题链接

    思路

    由于只有两列,所以一个点会变成障碍的条件是他旁边的三个点都无法通行。
    比如假设((1,2))变成岩浆:
    如果((1,1))是岩浆,无法通行;
    如果((1,2))是岩浆,无法通行;
    如果((1,3))是岩浆,无法通行;
    记录障碍物的个数,如果为(0)的话可以通行。
    每次通过给定点周围的状态更新障碍物的个数。

    代码:

    const int maxn=1e5+10;
    int a[3][maxn];
    int main()
    {
        int n=read,q=read,res=0;
        while(q--){
            int x=read,y=read;
            a[x][y]=!a[x][y];
            if(x==1){
                if(a[x][y]){
                    if(a[2][y-1]) res++;
                    if(a[2][y]) res++;
                    if(a[2][y+1]) res++;
                }
                else{
                    if(a[2][y-1]) res--;
                    if(a[2][y]) res--;
                    if(a[2][y+1]) res--;
                }
            }
            else{
                if(a[x][y]){
                    if(a[1][y-1]) res++;
                    if(a[1][y]) res++;
                    if(a[1][y+1]) res++;
                }
                else{
                    if(a[1][y-1]) res--;
                    if(a[1][y]) res--;
                    if(a[1][y+1]) res--;
                }
            }
            if(!res) puts("Yes");
            else puts("No");
        }
        return 0;
    }
    
    /*
    
    **/
    
    
    
  • 相关阅读:
    Js变量类型
    前端面试题HTML
    AP聚类
    锚点
    html
    Active Learning主动学习
    z-index
    position
    学习笔记_卷积神经网络
    学习笔记_深度学习的数学基础
  • 原文地址:https://www.cnblogs.com/OvOq/p/14836938.html
Copyright © 2020-2023  润新知