zoukankan      html  css  js  c++  java
  • [CodeForces][思维]NEKO's Maze Game

    本题是老姚分享的题。

    题目

    题目链接

    解说

    思维题,想明白了极其简单。

    首先,考虑一下什么情况下路会被封死:

    共有以上三种情况。

    所以很显然我们不需要每次都从1到n找一遍有没有路,每改变一个格子的状态就检查一下另一列三个格子的状态即可。再用一个ans变量储存一下共有多少对足以堵死路的格子。ans为零则YES,否则就NO。

    代码

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 const int maxn=100000+5;
     4 bool a[maxn],b[maxn];
     5 int n,q;
     6 int main(){
     7     ios::sync_with_stdio(false);
     8     cin>>n>>q;
     9     int ans=0;
    10     for(int i=1;i<=q;i++){
    11         int x,y;
    12         cin>>x>>y;
    13         if(x==1){
    14             if(a[y]){
    15                 a[y]=0;
    16                 if(b[y]) ans--;
    17                 if(b[y+1]) ans--;
    18                 if(b[y-1]) ans--;
    19             }
    20             else{
    21                 a[y]=1;
    22                 if(b[y]) ans++;
    23                 if(b[y+1]) ans++;
    24                 if(b[y-1]) ans++;
    25             }
    26         }
    27         else{
    28             if(b[y]){
    29                 b[y]=0;
    30                 if(a[y]) ans--;
    31                 if(a[y+1]) ans--;
    32                 if(a[y-1]) ans--;
    33             }
    34             else{
    35                 b[y]=1;
    36                 if(a[y]) ans++;
    37                 if(a[y+1]) ans++;
    38                 if(a[y-1]) ans++;
    39             }
    40         }
    41         if(ans) cout<<"No"<<endl;
    42         else cout<<"Yes"<<endl;
    43     }
    44     return 0;
    45 }
    View Code

    (又找回了入门时打表的感觉)

    幸甚至哉,歌以咏志。

  • 相关阅读:
    jQuery的简单实用的25个知识点
    toDoList案例
    缓动动画函数的封装
    轮播图的设置:
    Django学习:cookie和session
    Django学习:ORM
    Django学习:中间件
    Django学习:url路由系统
    Django学习:模板继承和配置静态文件
    Django学习:模板语法
  • 原文地址:https://www.cnblogs.com/DarthVictor/p/12630426.html
Copyright © 2011-2022 走看看