洛谷CF1292A NEKO's Maze Game,还是思维。。。
题目直接找链接
题意:
有一个2*n大的平面,有的格子不能走,有的格子可以走,最初状态所有格子都可以走,有q个操作,每个操作都把某个格子变化一下:能走变不能走,不能走变能走,输出每次操作之后能否从1,1到
2,n。合法的走法:有共同边的格子可以相互到达。
solve:
思维题,考虑一下有什么特殊的性质吧:怎样快速的判断能不能到达呢,其实很简单:只要有一个“卡死”的就过不去,没有“卡死”的就可以过去,什么叫“卡死”呢,想一想,只要有对角线相邻的或者上下相邻的不能走的格子,就“卡死”了。
ps:我们学OI的可不能有一个卡死的就过不去了,我们要学会转换,解决问题,“跳一跳”把“卡死”的格子跳过去,就算都是“卡死”的,我们也要努力通过,正如:不拼一把,怎么知道自己有多优秀,我们OIer要有“所向隔山海,山海皆可平”的信念,要有“明知山有虎,偏向虎山行”的勇气,要有“舍我其谁”的信心。这才是OI该有的样子嘛,想这种有一个对角线卡住就过不去了,不是我们的性格。
说多了。。。,回到题目:那我们要做什么呢?记录有多少卡死的,然后判断,如果有卡死的,那么它肯定过不去,如果没有卡死的,那么就能过去。怎么记录呢?方法可能很多,我随便举一种:记录每个格子的状态,每改变一个格子,就看可能构成死路的格子的状态,然后再进行判断,更新一共有多少个卡死的数目,更新完之后,判断一下有没有卡死的就可以了。
还有一个小小的问题:1,1or2,n是不能通过的格子怎么办呢,仔细研读一下原题,这样应该也是不可以的,所以我们再加一个特判就可以了。
ps:翻译的时候要注意,你粘贴到翻译器上的105很有可能变成105,这个还好,算法想对了影响不大,有的数据109(算上加和很有可能超int)变成了109,于是你的用的int,于是就。。。
#include <cstdio>
const int maxn=1e5+;
bool zt[maxn][];
int x[]={-,-,,,,};//算是一个小技巧吧,大家应该都会。
int y[]={-,,-,,-,};
int main(){
int dd=;
int n,q;
scanf("%d%d",&n,&q);
int js1,js2;
for(int i=;i<=q;i++){
scanf("%d%d",&js2,&js1);
zt[js1][js2]=!zt[js1][js2];
if(zt[js1][js2])
for(int i=;i<;i++)
if(js1+x[i]>=&&js1+x[i]<=n&&js2+y[i]>=&&js2+y[i]<=)
if(zt[js1+x[i]][js2+y[i]])
dd++;
if(!zt[js1][js2])
for(int i=;i<;i++)
if(js1+x[i]>=&&js1+x[i]<=n&&js2+y[i]>=&&js2+y[i]<=)
if(zt[js1+x[i]][js2+y[i]])
dd--;//这两个循环应该是可以合并的,不过我感觉这样写可能更好理解一些
if(!dd&&!zt[][]&&!zt[n][])
printf("Yes\n");
else
printf("No\n");
}
return ;
}
洛谷CF1292A NEKO's Maze Game,还是思维。。。的更多相关文章
- 洛谷P1667/[10.22 模拟赛] 数列 (思维+模拟)
洛谷P1667 数列 题目描述 给定一个长度是n的数列A,我们称一个数列是完美的,当且仅当对于其任意连续子序列的和都是正的.现在你有一个操作可以改变数列,选择一个区间[X,Y]满足\(A_X +A_{ ...
- 洛谷P1088 火星人【STL】【思维】
题目:https://www.luogu.org/problemnew/show/P1088 题意: 给定一个n个数的排列,要求得到这之后的第m个排列. 思路: next_permutation的简单 ...
- 【洛谷】P1641 [SCOI2010]生成字符串(思维+组合+逆元)
题目 传送门:QWQ 分析 不想画图. https://www.luogu.org/problemnew/solution/P1641 好神仙的题啊. 代码 // luogu-judger-enabl ...
- 【洛谷5292】[HNOI2019] 校园旅行(思维DP)
点此看题面 大致题意: 给你一张无向图,每个点权值为\(0\)或\(1\),多组询问两点之间是否存在一条回文路径. 暴力\(DP\) 首先,看到\(n\)如此之小(\(n\le5000\)),便容易想 ...
- 【洛谷】P1275 魔板(暴力&思维)
题目描述 有这样一种魔板:它是一个长方形的面板,被划分成n行m列的n*m个方格.每个方格内有一个小灯泡,灯泡的状态有两种(亮或暗).我们可以通过若干操作使魔板从一个状态改变为另一个状态.操作的方式有两 ...
- CodeForces 1292A NEKO's Maze Game(思维)
#include <stdio.h> #include <string.h> #include <iostream> #include <string> ...
- 洛谷 P4017 最大食物链计数 (拓扑排序,思维)
题意:有\(n\)个点,连\(m\)条边,求最多有多少条食物链(从头走到为有多少条路径). 题解:之前抽了点时间把拓扑排序补完了,这题其实就是一道拓扑排序的裸题.关于拓扑排序: 1.首先,我们用\ ...
- 洛谷3973 TJOI2015线性代数(最小割+思维)
感觉要做出来这个题,需要一定的线代芝士 首先,我们来观察这个柿子. 我们将\(B\)的权值看作是收益的话,\(C\)的权值就是花费. 根据矩阵乘法的原理,只有当\(a[i]和a[j]\)都为\(1\) ...
- 洛谷4322 SHOI2014 三叉神经树(LCT+思维)
好久之前做的题了QWQ 现在来补一发博客 一道神仙题啊..qwq 首先,我们可以看出来,我们如果对于每个点维护一个\(val\),表示他的直系儿子中有几个表现为1的. 那么\(val[x]>&g ...
随机推荐
- OO学习最终总结
0.前言:本次主要是针对第三阶段的三次作业以及整个课程学习的总结,这三次作业主要是针对对程序进行重构使得程序可以对功能进行扩展的训练以及对类的设计,所以在此阐述在练习过程中的问题以及感悟. 1.作业总 ...
- Linux内核配置编译及基本调试方法
一.Linux内核配置编译 1. 交叉编译设置:make ARCH=arm CROSS_COMPILE=arm-linux- 注:也可以直接修改顶层Makefile ARCH ?= arm CROSS ...
- Grafana 插件地图Worldmap不显示
介绍 最近上了ELK 日志分析,想着手看下用户的分布情况,在kibana 中展示用户分布情况是没有问题的,但是索引添加到Granfana 中的话就无法展示. 问题描述 添加ES索引以后,map地图一片 ...
- zabbix服务无法正常启动
环境介绍 操作系统 centos 7.4 zabbix 3.4.7 故障现象说明 zabbix agent无法启动 web 监控不到客户端服务器 查看日志报错 提示不能打开日志,不能创建信 ...
- local 对象补充
昨日回顾 1 @app.before_first_request,再项目启动后接收到的第一个请求,会执行before_first_request,他再@app.before_request之前执行.他 ...
- (一)JDK安装和使用eclipse输出hello world
目录 一.jdk安装(推荐使用压缩包安装) 二.使用eclipse输出hello world 一.jdk安装(推荐使用压缩包安装) 1.压缩包安装的优点:若可能同时使用多个jdk版本,切换jdk时只需 ...
- C Primer Plus(三)
重读C Primer Plus ,查漏补缺 重读C Primer Plus,记录遗漏的.未掌握的.不清楚的知识点 文件输入/输出 1.fgets函数在读取文件内容时会将换行符读入,但gets不会,fp ...
- 14.Django-JWT
一.基于JWT的Token登录认证 1. JWT简介 json Web Token(缩写JWT)是目前最流行的跨域认证解决方案 session登录的认证方案是看,用户从客户端传递用户名和密码登录信息, ...
- C# 9.0 新特性之目标类型推导 new 表达式
阅读本文大概需要 2 分钟. 呼~~,每次过完一个周末,写作就失去了动力,一两天才能缓过来.尽管如此,还是要坚持写好每一篇文章的.宁缺毋滥嘛,宁愿发文的频率低一点,也要保证文章的质量,至少排版不能差, ...
- 【服务器】VMware Workstation Pro虚拟机搭建本地服务器CentOs7和宝塔面板(保姆式教程)
内容繁多,请耐心跟着流程走,在过程中遇到问题请在下面留言. 前言 这几天一直在复习thinkphp5.1,学习环境是phpStudy8.1,但是遇到了文件有缓存的问题(thinkphp5.1.39,修 ...