Codeforces 1292A/1293C - NEKO's Maze Game
题目大意:
有一个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[],b[];
void solve(){
int n,q,i,x,y,cnt=;
memset(a,,sizeof a);
memset(b,,sizeof b);
cin>>n>>q;
while(q--){
cin>>x>>y;
if(x==){
a[y]=-a[y];
if(a[y]){
if(y->)
cnt+=b[y-];
cnt+=b[y];
if(y+<=n)
cnt+=b[y+];
}
else{
if(y->)
cnt-=b[y-];
cnt-=b[y];
if(y+<=n)
cnt-=b[y+];
}
}
else{
b[y]=-b[y];
if(b[y]){
if(y->)
cnt+=a[y-];
cnt+=a[y];
if(y+<=n)
cnt+=a[y+];
}
else{
if(y->)
cnt-=a[y-];
cnt-=a[y];
if(y+<=n)
cnt-=a[y+];
}
}
cout<<(cnt==?"Yes":"No")<<endl;
}
}
int main(){
ios::sync_with_stdio();
cin.tie();cout.tie();
solve(); return ;
}
Codeforces 1292A/1293C - NEKO's Maze Game的更多相关文章
- 【迷宫问题】CodeForces 1292A A NEKO's Maze Game
题目大意 vjudge链接 共两行,从(1,n)到(2,n). 每过一个时刻会有一个位置的状态变化,从能到达这个位置变成不能到达,或从不能到达变成能到达,问在每个时刻中是否能从起点到终点. 数据范围 ...
- CodeForces 1293 C NEKO's Maze Game
[题目链接] [题目大意] 有一个2 ∗ n的地图,小女孩从(1,1)想移动到(2,n) 有q次询问,每次询问更改一个格子状态(是否可以通过) 只能上下左右移动而不能斜着移动,问每次操作后,是否可以移 ...
- CodeForces 1292A NEKO's Maze Game(思维)
#include <stdio.h> #include <string.h> #include <iostream> #include <string> ...
- 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 Round #614 (Div. 2) C - NEKO's Maze Game
题目链接:http://codeforces.com/contest/1293/problem/C 题目:给定一个 2*n的地图,初始地图没有岩浆,都可以走, 给定q个询问,每个询问给定一个点(x,y ...
- 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\) 这个结论的正确性感觉 ...
随机推荐
- Flexslider插件实现图片轮播、文字图片相结合滑动切换效果
插件下载: 点击下载 密码: fbeg Flexslider具有以下特性: 支持滑动和淡入淡出效果. 支持水平.垂直方向滑动. 支持键盘方向键控制. 支持触控滑动. 支持图文混排,支持各种html元素 ...
- UVALive 6763 / CSU 1446
今天比赛的时候拿到的第一道题,其实挺简单的,求两等差序列中相同元素的个数,我想了一下就觉得,只要找到了第一个相等的点,然后后面求最大公约数就可以直接得到结果了 网上叫什么拓展欧几里得,我反正是按照我们 ...
- 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:Spring目录结构和基础JAR包介绍
可以通过网址 http://repo.spring.io/simple/libs-release-local/org/springframework/spring/ 下载名称为 springframe ...
- 渗透测试 - HPP数据污染 - 原理 | 场景
Web服务器 参数获取函数 获取到的参数 PHP/Apache $_GET(“par”) Last JSP/Tomcat Request.getParameter(“par”) ...
- Java web项目所需技术*(大概)
实施java 的web项目需要掌握的技术如下: 1.java语言 2. 面向对象分析设计 XML 语言 网页脚本语言 数据库 应用服务器 集成开发环境 .java语言:JSP.Servlet.JDB ...
- redis(六)---- 简单延迟队列
延迟队列的应用场景也很常见,例如:session的超时过期.自动取消未付款订单等等.redis中有一种数据结构叫做zset,即有序集合.元素类型为String类型,且元素具有唯一性不能重复,每个元素可 ...
- MySQL 插入 中文数据乱码解决
问题描述: 1.在命令行中进行插入,没有问题.但是显示存在部分乱码 2.在JDBC中插入成功.中文是直接以“??”形式显示. 通过Navicat客户端查看 与在网页中看到的一一致,说明读取没有问题,问 ...
- c++ 排序 冒泡 插入 选择 快速
//冒泡 #include <iostream> using namespace std; void bubbleSort(int* list,int index) { ;i--) //i ...
- Aras Innovator如何配置SMTP中转Office365
参考文档:http://www.ebdadvisors.com/blog/2015/7/31/configure-an-smtp-server-in-windows-iis-for-aras-inno ...
- 专为前端开发者准备的15款优秀的Sublime Text插件
Sublime Text 已成为了目前最流行的代码编辑器之一.它的反应速度.简单易用性以及丰富的插件生态,让众多前端开发者们为之倾倒. 为了帮助开发者们更便捷地使用 Sublime Text ,我们决 ...