NBUT1541 Rainwater 题解
http://cdn.ac.nbutoj.com/Problem/view.xhtml?id=1541
|
When rain, nocLyt discovered a magical phenomenon that the rainwater always flow to the low-lying place. |
我以后都在题解里放一小段题目,让人更容易搜到,有没有很有想法!(咦这样好像放全部的题目更容易被搜到啊)(不过那样好像比较乱啊)
[] Rainwater
时间限制: ms 内存限制: K
问题描述
When rain, nocLyt discovered a magical phenomenon that the rainwater always flow to the low-lying place. Now, there is a N * N grid matrix (four Unicom) and above the first row was constantly raining. I have to tell you some rules: . Each grid is solid (represented as black) initially, the rain cannot flow into the solid grid. . You can "Open" a grid, if you "Open" that grid, that grid will becomes hollow (represented as white). . Rainwater can flow from top to bottom and from left to right (also right to left), but the precondition is that they are both hollow grid. (grid fill with rainwater represented as blue) You can get more information from below picture. Figure: from left to right are executed times, times, times, times "Open" operation. We have three operation: . O i j: "Open" the grid (i, j). . F i j: You should tell me whether the grid(i, j) filled with rainwater. If yes, you should output , otherwise output . . C: You should tell me whether the rainwater has flow to the last row. If yes, you should output , otherwise output . Note: The grid matrix from top to bottom number to N, from left to right number to N. 输入
There are multiple test cases, each test case contains two positive integers N ( <= N <= ) and M ( <= M <= ).
Following M lines, each line contain one of the three operation:
. O i j ( <= i, j <= N)
. F i j ( <= i, j <= N)
. C 输出
Output the answer.
样例输入 O
F
O
F
C
O
C
样例输出 提示
无来源
nocLyt @SDAU
题目
我把题目隐藏成一行,这样就不乱,而且好像也能被搜到。不过这样格式有点逗,要看题目还是点链接去看好了。
好下面来说这题Rainwater:
看图比较容易懂意思,就是你的三种操作是开某个孔,查某个孔有没有进水,查最下面一行有没有水。水会从最上面一行出现,然后随便乱流,看最后一个图可以知道它会往上流。
看完题目,这不就是超水的深搜吗!
把地图从1开始,第0行先灌满水。每次开一块的时候,如果四个方向没水,那这一块肯定没水。如果有水,那就把这格填上水,并且深搜一波,把能到的地方都水了。这样每格最多水一次,复杂度超低。然后它询问某个孔的时候就直接答,询问最下面这行的话也直接答,搜的时候记得记最下面这行有没有水,不要在查的时候才查一整行,这个可是要问100W个问题的,地图只有5000*5000,最下面那一行有5000个格子啊,你敢每次搜一下吗!
总之就是搜就过啦,深搜王,我咧哇纳鲁!
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
#define ll long long
const int MAXN=;
const int gx[]={,,-,};
const int gy[]={-,,,};
int a[MAXN][MAXN];
int n,m,flagc; void dfs(int x,int y)
{
int i;
a[x][y]=;
if(x==n) flagc=;
for(i=;i<;i++)
if(a[x+gx[i]][y+gy[i]]==) dfs(x+gx[i],y+gy[i]);
} void open(int x,int y)
{
int i,j;
if(a[x][y]!=) return;
a[x][y]=;
for(i=;i<;i++)
if(a[x+gx[i]][y+gy[i]]==){a[x][y]=;break;}
if(a[x][y]==) return;
dfs(x,y);
} int main()
{
char c;
int x,y,i;
while(scanf("%d%d",&n,&m)!=EOF)
{
memset(a,,sizeof(a));
for(i=;i<=n;i++)
a[][i]=;
flagc=;
for(i=;i<m;i++)
{
//cout<<i<<"!"<<endl;
do{scanf("%c",&c);}while(c=='\n' || c==' ');
if(c!='C')
{
scanf("%d%d",&x,&y);
if(c=='O') open(x,y);
else if (c=='F')
{
printf("%d\n",a[x][y]==);
}
}
else
{
printf("%d\n",flagc);
}
}
}
return ;
}
NBUT1541 Rainwater 题解的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
随机推荐
- IOS-一步一步教你自定义评分星级条RatingBar ——转载的
由于项目的需要,需要设计能评分.能显示评分数据的星级评分条,但是IOS上好像没有这个控件,Android是有RatingBar这个控件的(又发现一个IOS不如Android好的),那就只能自定义了,在 ...
- java个人总结
20145230<Java程序设计>课程总结 每周读书笔记链接汇总 20145230<java程序设计>第0周学习总结:http://www.cnblogs.com/kobe2 ...
- Javascript设计模式之我见:状态模式
大家好!本文介绍状态模式及其在Javascript中的应用. 模式介绍 定义 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类. 状态模式主要解决的是控制一个对象状态的条件表达式 ...
- Win10开发究竟能实现哪些牛逼的功能
经Win10开发者群(53078485)大咖Aran童鞋授权,这次先Show一下他通过vs2015做的跨端APP一些高级功能的GIF图,大家可以回帖想要哪个功能的DEMO,我和Aran说一下,会把DE ...
- 记录我学github的路程(二)
2015-12-09 更新 1,现在,本地有了一个库,你可能会想到GitHub创建一个库,并且关联起来.这样,远程的库既可以当作备份,又可以让其他人通过该仓库来协作. 2,步骤: (1)登录GitHu ...
- Sublime Text 3使用参考手册
什么是Sublime Text? Sublime Text 是一个代码编辑器(Sublime Text 2是收费软件,但可以无限期试用),也是HTML和散文先进的文本编辑器.Sublime Text是 ...
- [工具]推荐一款查看dll依赖工具
引言 很久没写一篇像样的博客了,最近一个月一直忙于项目,也没时间去总结了,回到家,也就是看看书,没怎么总结.不过还是挺兴奋的,每天过得还算充实.这里也算是对五月份的一个总结吧. 为什么要查看dll 因 ...
- WebClient和HttpClient, 以及webapi上传图片
httppost请求. applicationkey/x-www-form-urlencoded请求: Email=321a&Name=kkfewwebapi里面, 如果用实体, 能接受到. ...
- 【转】div居中代码 DIV水平居中显示CSS代码
原文地址:http://www.divcss5.com/rumen/r622.shtml 如何使用CSS让DIV居中显示,让div水平居中有哪些CSS样式呢? 需要的主要css代码有两个,一个为tex ...
- 看css发现一个pointer-events:none;的东西
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...