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;
    }

  • 相关阅读:
    js以字符串方式创建DOM(原生js,jquery,extjs)
    gallery3
    检测标准类型和内置对象类型
    js数据类型和类型检测
    gallery2
    gallery
    如何使用Git上传项目代码到github
    sublime EMMET
    模糊搜索
    导出表格
  • 原文地址:https://www.cnblogs.com/waryan/p/12247170.html
Copyright © 2011-2022 走看看