zoukankan      html  css  js  c++  java
  • #614 C. NEKO's Maze Game[简易DFS,0|1转换]

    起初一直看不懂题的意思,最后看了大佬的视频讲解才明白了题的意思。

    意:每次询问重复的时候抵消上一次操作  如果是奇数次的操作则视为障碍阻挡前进

    收获:0和1的转换技巧,简单搜索和巧定义全局变量,没必要一定要写出来函数

    非函数写法:

    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e5+5;
    int a[2][N];
    int main()
    {
        int n,q;int obstacle=0;
        cin>>n>>q;
        while(q--)
        {
            int x,y;
            cin>>x>>y;x--,y--;
            if(a[x][y]==0)
            {
                a[x][y]=1;
                for(int i=-1;i<=1;++i){
                    if(a[1-x][y+i]==1)
                        obstacle++;
                }
            }
            else
            {
                a[x][y]=0;
                for(int i=-1;i<=1;++i){
                    if(a[1-x][y+i]==1){
                        obstacle--;
                    }
                }
            }
            if(obstacle>0) cout<<"No"<<endl;
            else cout<<"Yes"<<endl;
        }
        return 0;
    }

    函数内写法:

    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e5+5;
    int a[2][N];
    int obstacle=0,x,y,n,q;
    
    void solve()
    {
        int delta=(a[x][y]==0)?1:-1;
        a[x][y]=1-a[x][y];
        for(int i=-1;i<=1;++i){
            if(y+i>=n||y+i<0) continue;
            if(a[1-x][y+i]==1) obstacle+=delta;
        }
    
    }
    int main()
    {
        cin>>n>>q;
        while(q--)
        {
            cin>>x>>y;x--,y--;
            solve();
            if(obstacle>0) cout<<"No"<<endl;
            else cout<<"Yes"<<endl;
        }
        return 0;
    }

  • 相关阅读:
    vue工作篇
    idea快捷键
    idea怎么随时随地调整字体大小
    idea配置maven
    idea启动加速
    idea配置tomcat
    idea设置哪个浏览器打开
    jsonArray和jsonObject的理解
    多文件上传保存到本地服务器
    并发编程
  • 原文地址:https://www.cnblogs.com/waryan/p/12247170.html
Copyright © 2011-2022 走看看