CodeForces 1293 C NEKO's Maze Game
【题目大意】
有一个2 ∗ n的地图,小女孩从(1,1)想移动到(2,n)
有q次询问,每次询问更改一个格子状态(是否可以通过)
只能上下左右移动而不能斜着移动,问每次操作后,是否可以移动到(2,n)
【Input】
第一行n,q (数据范围1e5)
2 * n表示图的大小,q表示更改次数
以下q行,每行输入x,y表示更改点的坐标
【Output】
"Yes" or "No"
【Example】
input
5 5
2 3
1 4
2 4
2 3
1 4
output
Yes
No
No
No
Yes
【思路&分析】
老规矩,一切题目从暴力开始想
显然的,每次更新完用dfs暴搜
理想很丰满,现实很骨干
一看1 e 5, 一切都玩完
咳咳——换思路
仔细审题
我们发现—这个图是2 * n的
那么对于每个格子的两种状态,分类讨论
- 没有障碍物,可以通过(√)
- 有障碍物,我们可以选择绕行
如图所示,红色表示不可通过,蓝色表示可通过
若出现了红色部分,我们只需要判断其对面三个格子(图示第二行三个蓝格子)中有几个可通过
但凡有一个不可通过,则“No”
【代码实现】
需要二维数组保存状态
需要计数器数可以通行的格子
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; inline int read(){
int x = , w = ;
char ch = getchar();
for(; ch > '' || ch < ''; ch = getchar()) if(ch == '-') w = -;
for(; ch >= '' && ch <= ''; ch = getchar()) x = x * + ch - '';
return x * w;
} const int maxn = ; int n,q;
bool a[][maxn];
int ans; inline void check(int x, int y){
int tmp = ;
if(x == ) tmp = ;
else tmp = ;
if(a[x][y] == ){
if(a[tmp][y - ]) ans++;
if(a[tmp][y]) ans++;
if(a[tmp][y + ]) ans++;
}
else if(a[x][y] == ){
if(a[tmp][y - ]) ans--;
if(a[tmp][y]) ans--;
if(a[tmp][y + ]) ans--;
}
a[x][y] = !a[x][y];
} int main(){
n = read(), q = read();
while(q--){
int x = read(), y = read();
check(x, y);
if(!ans) cout << "Yes\n";
else cout << "No\n";
}
return ;
}
Code
CodeForces 1293 C NEKO's Maze Game的更多相关文章
- Codeforces 1292A/1293C - NEKO's Maze Game
题目大意: 有一个2*n的图 NEKO#ΦωΦ要带领mimi们从(1,1)的点走到(2,n)的点 每次会操作一个点,从可以通过到不可以通过,不可以通过到可以通过 每操作一次要回答一次NEKO#ΦωΦ能 ...
- 【迷宫问题】CodeForces 1292A A NEKO's Maze Game
题目大意 vjudge链接 共两行,从(1,n)到(2,n). 每过一个时刻会有一个位置的状态变化,从能到达这个位置变成不能到达,或从不能到达变成能到达,问在每个时刻中是否能从起点到终点. 数据范围 ...
- Codeforces Round #614 (Div. 2) C - NEKO's Maze Game
题目链接:http://codeforces.com/contest/1293/problem/C 题目:给定一个 2*n的地图,初始地图没有岩浆,都可以走, 给定q个询问,每个询问给定一个点(x,y ...
- NEKO's Maze Game - Codeforces 题解
题目 NEKO#ΦωΦ has just got a new maze game on her PC! The game's main puzzle is a maze, in the forms o ...
- CodeForces 1292A NEKO's Maze Game(思维)
#include <stdio.h> #include <string.h> #include <iostream> #include <string> ...
- Codeforces Round #614 (Div. 1) A. NEKO's Maze Game (思维,模拟)
题意:有一个\(2\)X\(n\)的矩阵,你想从\((1,1)\)走到\((2,n)\),每次可以向上下左右四个方向走,但在某些时间段某个点会被堵住,如果已经被堵住,那么即恢复正常,每次对某个点操作, ...
- Codeforces Round #222 (Div. 1) Maze —— dfs(连通块)
题目链接:http://codeforces.com/problemset/problem/377/A 题解: 有tot个空格(输入时统计),把其中k个空格变为wall,问怎么变才能使得剩下的空格依然 ...
- NEKO's Maze Game
NEKO#ΦωΦ has just got a new maze game on her PC! The game's main puzzle is a maze, in the forms of a ...
- 题解 CF1292A 【NEKO's Maze Game】
有一个结论: 当 \((1,1)\) 不能抵达 \((2,n)\) 时,必定存在一个点对,这两个点的值均为真,且坐标中的 \(x\) 互异,\(y\) 的差 \(\leq 1\) 这个结论的正确性感觉 ...
随机推荐
- el-upload配合vue-cropper实现上传图片前裁剪
需求背景 上传一个封面图,在上传之前需要对图片进行裁剪,上传裁剪之后的图片,类似微信的上传头像. 技术方案 上传肯定是用element的 el-upload 组件实现上传,非常方便,各种钩子函数. 裁 ...
- InstallShield 2015 Limited Edition 打包教程
InstallShield 2015 Limited Edition 打包教程 右键解决方案,新增项目,选择其他项目类型,安装和部署. InstallShield2015可以免费使用,但需要下载.安装 ...
- 无监督LDA、PCA、k-means三种方法之间的的联系及推导
\(LDA\)是一种比较常见的有监督分类方法,常用于降维和分类任务中:而\(PCA\)是一种无监督降维技术:\(k\)-means则是一种在聚类任务中应用非常广泛的数据预处理方法. 本文的 ...
- css实现朋友圈照片排列布局
纯css实现朋友圈不同数量图片不同布局 首先可以打开朋友圈观察不同图片数量的几种布局,也可参考下图示例: 可以发现 除1张图片,4张图片特殊外,其他数量图片均使用一行三列的方式排列: 假设有如下HTM ...
- Nested Report_FR
设置好下面的关系(Mar 18做,copy from MyQ): 1) Customer.Orders.Items 的 MasterSouce.MasterField2) 后面2个的 DataSour ...
- ThreadLocal源码解析-Java8
目录 一.ThreadLocal介绍 1.1 ThreadLocal的功能 1.2 ThreadLocal使用示例 二.源码分析-ThreadLocal 2.1 ThreadLocal的类层级关系 2 ...
- 一文读懂Redis的四种模式,单机、主从、哨兵、集群
少点代码,多点头发 本文已经被GitHub收录,欢迎大家踊跃star 和 issues. https://github.com/midou-tech/articles 入职第一周,我被坑了 最近刚入职 ...
- Chrome启动选项
1. Chrome Options 这是一个Chrome的参数对象,在此对象中使用add_argument()方法可以添加启动参数,添加完毕后可以在初始化Webdriver对象时将此Options对象 ...
- WebDriverWait与expected_conditions结合使用
expected_conditions判断页面元素 demo2 from selenium import webdriver from selenium.webdriver.support.ui im ...
- pip未找到
命令终端运行 sudo easy_install pip 安装成功后最后会显示 Installed /Library/Python/2.7/site-packages/pip-9.0.1-py2.7. ...