CF1292A-NEKO's Maze Game
Posted yanying7
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CF1292A-NEKO's Maze Game相关的知识,希望对你有一定的参考价值。
题目:https://vjudge.net/problem/CodeForces-1292A
题意:共两行,从(1,1)到(2,n)每过一个时刻会有一个位置的状态变化,从能到达这个位置变成不能到达,或从不能到达变成能到达,问在每个时刻中是否能从起点到终点。
分析:对于某一行的一个障碍,要形成阻碍,必须在另一行的该位置或者相邻位置存在障碍。也就是说,假设a[1][y]存在障碍,那么a[2][y-1]或者a[2][y]或者a[2][y+1]存在障碍才能形成阻碍。故我们可以两两组成一组并计数,每存在一组就加一,每消失一组就减一,如果计数为0就可以通过。
#include <stdio.h> int a[3][100100]; int n,q,x,y; int main(void){ scanf("%d %d",&n,&q); int flag=0; while(q--){ scanf("%d %d",&x,&y); if(!a[x][y]){ a[x][y]=1; if(a[3-x][y+1])flag++; if(a[3-x][y])flag++; if(a[3-x][y-1])flag++; } else{ if(a[3-x][y+1])flag--; if(a[3-x][y])flag--; if(a[3-x][y-1])flag--; a[x][y]=0; } if(flag)printf("No "); else printf("Yes "); } }
以上是关于CF1292A-NEKO's Maze Game的主要内容,如果未能解决你的问题,请参考以下文章
CodeForces 1292A NEKO's Maze Game(思维)