zoukankan      html  css  js  c++  java
  • Codeforces 1292A/1293C

    题目大意:

    有一个2*n的图

    NEKO#ΦωΦ要带领mimi们从(1,1)的点走到(2,n)的点

    每次会操作一个点,从可以通过到不可以通过,不可以通过到可以通过

    每操作一次要回答一次NEKO#ΦωΦ能不能带领他们走到那里

    解题思路:

    用cnt记录不能走的种类数
    两个数组,分别对应r为1和r为2
    值用0和1表示能通过和不能通过
    如果当前操作的是点c
    如果操作完之后这个点的值变成了0(可以通过了)
    那么就考虑另外一个r的数组的 c-1 c c+1 三个点的情况
    如果三个点满足题意(大于等于1且小于等于n)并且点值为1(不能通过),说明这个点能和这次操作被消除的点构成一个障碍
    而此时这个点变成了0,说明障碍消除了,所以不能走的种类数可以-1
    总而言之,c-1 c c+1 这三个点有多少个1,拿cnt就减几
    如果操作完变成了1(不能通过了)
    照常,看另外一个r数组的 c-1 c c+1 这三个点有多少个1,拿cnt就加几(不能走的种类数会增加)
    最后看cnt的状态
    如果cnt为0则表示能走
    否则不能走

    #include<bits/stdc++.h>
    using namespace std;
    int a[100050],b[100050];
    void solve(){
        int n,q,i,x,y,cnt=0;
        memset(a,0,sizeof a);
        memset(b,0,sizeof b);
        cin>>n>>q;
        while(q--){
            cin>>x>>y;
            if(x==1){
                a[y]=1-a[y];
                if(a[y]){
                    if(y-1>0)
                        cnt+=b[y-1];
                    cnt+=b[y];
                    if(y+1<=n)
                        cnt+=b[y+1];
                }
                else{
                    if(y-1>0)
                        cnt-=b[y-1];
                    cnt-=b[y];
                    if(y+1<=n)
                        cnt-=b[y+1];
                }
            }
            else{
                b[y]=1-b[y];
                if(b[y]){
                    if(y-1>0)
                        cnt+=a[y-1];
                    cnt+=a[y];
                    if(y+1<=n)
                        cnt+=a[y+1];
                }
                else{
                    if(y-1>0)
                        cnt-=a[y-1];
                    cnt-=a[y];
                    if(y+1<=n)
                        cnt-=a[y+1];
                }
            }
            cout<<(cnt==0?"Yes":"No")<<endl;
        }
    }
    int main(){
        ios::sync_with_stdio(0);
        cin.tie(0);cout.tie(0);
        solve();
        
        return 0;
    }
  • 相关阅读:
    html中的a标签
    dl,dt,dd标签的使用
    MySQL innodb中各种SQL语句加锁分析
    Js字符串与十六进制的相互转换 【转】
    亿级Web系统搭建:单机到分布式集群【转】
    pm2 设置开机启动
    spring cloud 项目相关集成简介
    spring boot下JedisCluster方式连接Redis集群的配置
    并发编程 – Concurrent 用户指南--转
    JDBC 事务和 JTA 事务
  • 原文地址:https://www.cnblogs.com/stelayuri/p/12216137.html
Copyright © 2011-2022 走看看